Данный материал состоит из двух частей: прекрасного аналитического материала, написанного талантливым исследователем Героев Меча и Магии AlexSpl, и оптимистическими советами от Qwerty.
I. Защитные стрелковые башни (баллисты)
Защитные стрелковые башни можно рассматривать как отряды стрелков, которые не могут быть блокированы. Атака центральной башни равна 2, а урон составляет (2-3) * k, где k - количество построек в городе. Атака левой и правой башен равна 2, а урон составляет (2-3) * [k/2].
Примечание: сам замок тоже считается постройкой, т.о. число k может принимать значения от 1 (пустой замок) до 20 (полностью отстроенный замок).
Ход защитных стрелковых башен наступает перед ходом самого быстрого обороняющегося отряда. Сначала стреляет центральная башня, затем - левая (верхняя) и, наконец, правая (нижняя).
Атака стрелковых башен может быть увеличена за счёт:
Примечания:
Урон стрелковой башни может быть увеличен или снижен в зависимости от разности между её атакой и защитой атакуемого отряда осаждающих. За каждую единицу разности A - D урон увеличивается на 10%, если атака башни больше защиты отряда противника, и уменьшается на 5% за каждую единицу разности D - A, если защита больше атаки:
Damage = [Base_Damage * (1 + 0.1 * (A - D))], если A >= D;
Damage = [Base_Damage * (1 - 0.05 * (D - A))], если D > A.
Примечания:
Таким образом, в зависимости от соотношения атака/защита, результирующий урон может превышать базовый в три раза или быть в пять раз меньше базового, но не меньше 1 HP.
Итак,
Base_Damage = (2-3) * k (для центральной башни),
Base_Damage = (2-3) * [k/2] (для левой и правой башен),
A = 2 + Hero_Captain_Attack + Mage_Guild_Level,
Delta = min(A - D, 20), если A >= D,
Delta = max(A - D, -16), если A < D,
Damage = [Base_Damage * (1 + 0.1 * Delta)], если A >= D;
Damage = [Base_Damage * (1 + 0.05 * Delta)], если A < D.
Примечание: [x] - взятие целой части (например, [1.99] = 1), т.е. результирующий урон башни целое число, дробная часть отсекается, в отличие от урона обычных отрядов, где он округляется, т.е. для обычных отрядов Damage = [х + 0.5]
Так как формально башня является стрелковым отрядом с численностью боевых единиц равной количеству возведённых построек в городе, базовый урон генерируется отдельно для каждой боевой единицы (может быть 2 либо 3), поэтому более вероятны уроны из центра диапазона [Min_Damage..Max_Damage]. Уроны вблизи границ данного отрезка маловероятны (чем больше значение k, тем выше вероятность уронов из центра диапазона и ниже вероятность уронов близ его границ: кривая распределения вероятностей напоминает колокол).
II. Защитный ров
Защитный ров служит препятствием для пеших отрядов и преодолевается ими за два хода, т.е. чтобы перейти ров, отряд должен сначала в него стать (это касается отрядов обеих сторон). В отличие от третьей части, находясь внутри рва, отряды не получают никакого урона и пенальти к их характеристикам. Отряд получает бонус +3 к атаке, если атакует отряд, стоящий во рву (исключение - стрелковые башни: они указанный бонус не получают). Для того чтобы пешим отрядам можно было попасть внутрь замка минуя ров, необходимо либо заставить пеший отряд противника открыть ворота, либо воспользоваться магией Телепорт, либо дождаться, когда их разобьёт катапульта.
III. Штрафы для стреляющих отрядов осаждающей стороны
Крепостная стена обеспечивает защиту от стрелковых атак всем отрядам защищающейся стороны, т.е. стрелки осаждающей стороны получают штраф при стрельбе по отрядам противника, укрывшимся за крепостной стеной. Визуально наличие штрафа отображается в виде курсора в форме сломанной стрелы при наведении его на отряд противника. При стрельбе со штрафом урон, наносимый стрелками, уменьшается вдвое. Существуют правила, позволяющие узнать, в каких случаях штраф отсутствует (здесь всё довольно не просто: штраф может отсутствовать даже при полуразрушенных секциях крепостной стены, т.е. когда ни одна секция не разрушена полностью!) .
50% штраф к урону для стрелковых отрядов, атакующих отряды противника за крепостной стеной, исчезает, если:
Что такое линия атаки и что значит не блокирована ни одной секцией крепостной стены?
Для начала введём прямоугольную систему координат, ось абсцисс направим слева направо, ось ординат - сверху вниз, как показано на скриншоте №1. Узлы сетки будут соответствовать гексам осадной арены. На скриншоте №1 узлы обозначены красными квадратами.
Назовём линией атаки отрезок, соединяющий узлы, в которых расположены стрелок и его жертва.
Примечание. На самом деле линия атаки - это не отрезок, а совокупность точек, лежащих на нём, с шагом 0,1 по большему измерению, но особой роли этот факт не играет.
Назовём окрестностью секции с координатами (X, Y) множество точек (Xi, Yi), для которых выполняются следующие два условия:
Указанное множество есть единичный квадрат (плоская фигура) с двумя отсутствующими сторонами (на скриншоте салатовые квадраты без восточной и южной сторон).
Тогда если линия атаки и окрестность секции пересекаются (это значит имеют хотя бы одну общую точку), то будем говорить, что секция блокирует линию атаки.
На скриншоте западная и северная границы окрестностей секций обозначены зелёным цветом, если секция является стеной, синим цветом, если секция является башней. Оранжевым цветом обозначены границы окрестности ворот (подъёмного моста). Обратите внимание, что окрестность крайней правой (нижней) стены состоит только из одной северной границы (является вырожденной). Окрестность этой секции выходит за пределы осадной арены.
Таким образом, если Вы внимательно читали весь этот бред :), то фраза "линия атаки стрелка не блокирована ни одной секцией крепостной стены" теперь должна быть Вам понятна.
Примеры на скриншоте №1:
Обратите внимание, что линия атаки стрелка в данном случае не пересекает ни одну окрестность секций крепостной стены, т.е. даже в прочных стенах есть бреши см. также скриншот №2.
Примечания:
Немного о машинных погрешностях...
Рассмотрим две линии атаки на рисунке: синюю (1) и красную (2). Оба отрезка пересекают окрестность шестой секции-башни в одной единственной точке, но в первом случае штраф отсутствует, а во втором - нет. В чём дело? Неправильный метод? Нет, в методе я уверен на 100%, иначе не стал бы его опубликовывать. Всё дело в машинных погрешностях. Угловой коэффициент синей линии атаки k1 = 2/3 = 0,(6) - периодическая дробь, которая, будучи помещена в четырёхбайтовую переменную, превращается в 0,66666668653... > 2/3. Далее, линия атаки не есть непрерывный отрезок. Чтобы не увязнуть в общих рассуждениях, рассмотрим отрезок №1. Длина проекции данного отрезка на ось абсцисс (6) больше его длины проекции на ось ординат (4). С шагом 0,1 по длине большей проекции игра строит "дискретную" линию атаки. Уравнение рассматриваемой линии y = 2/3 * x, где x принимает значения 0; 0,1; 0,2; ... Тогда y(2,9) = 0,66666668653... * 2,9 < 2, а в точке предполагаемого пересечения с окрестностью секции (синий квадрат) y(3) = 0,66666668653... * 3 > 2! (см. скриншот №1). Поэтому из-за машинных погрешностей реальная "дискретная" линия атаки не пересекает окрестность рассматриваемой секции.
Для тех, кто пропустил вышенаписанное, или читал, но не всё понял:
1. Если пересечением линии атаки с окрестностью секции является одна единственная точка, то секция НЕ блокирует линию атаки, если её угловой коэффициент - периодическая дробь (из-за машинных погрешностей).
На рисунке линия атаки (1) НЕ блокирована шестой секцией-башней несмотря на то, что линия пересекает секцию, т.к. угловой коэффициент этой линии k1 = 2/3 = 0,(6) - периодическая дробь. А вот линия атаки (2) блокирована этой же секцией (угловой коэффициент этой линии k2 = 1/2 = 0.5 - непериодическая дробь).
2. Если пересечение линии атаки и окрестности секции пусто (линии 3 и 4) или не состоит из одной единственной точки, то угловой коэффициент никакой роли не играет.
Извиняюсь, что уделяю внимание таким мелочам, которые на практике не встретятся 100%, но хочется изложить всё как можно строже, чтобы свести к минимуму недоразумения.
Описанный метод есть графическая интерпретация алгоритма, с помощью которого игра определяет, имеет ли стрелок штраф при стрельбе через крепостные стены. Возможно, что в третьей части реализован подобный алгоритм.
Аналитические условия отсутствия штрафа при стрельбе через крепостные стены
Пусть координаты атакующего стрелка (Xa, Ya), координаты атакуемого отряда противника, укрывшегося за крепостной стеной, (Xd, Yd), Xd > Xa (иначе о штрафах говорить не приходится), k = (Yd - Ya) / (Xd - Xa) - угловой коэффициент линии атаки. (Если k - периодическая дробь, помним про машинную погрешность), тогда секция (Xw, Yw) крепостной стены блокирует линию атаки стрелка, если выполняется хотя бы одно из следующих двух условий:
При 0 <= |k| <= 1 (угол стрельбы не больше 45 градусов):
1. Условие пересечения линии атаки с левой стороной окрестности секции:
Yd - Yw - 1 < k * (Xd - Xw) <= Yd - Yw;
2. Условие пересечения линии атаки с правой сторой окрестности секции:
Yd - Yw - 1 < k * (Xd - Xw - 1) < Yd - Yw.
Примечание: дополнительно, при k = -1, в силу особенности геометрии окрестности секции, секция блокирует линию атаки, если
Xd - Xw = Yw - Yd + 1.
При |k| > 1 (угол стрельбы больше 45 градусов):
1. Условие пересечения линии атаки с верхней стороной окрестности секции:
Xd - Xw - 1 < 1/k * (Yd - Yw) <= Xd - Xw;
2. Условие пересечения линии атаки с нижней сторой окрестности секции:
Xd - Xw - 1 < 1/k * (Yd - Yw - 1) < Xd - Xw.
IV. Катапульта
Катапульта является осадным орудием и предназначена для разрушения крепостных стен и уничтожения стрелковых башен, она занимает первый гекс восьмой горизонтали. Катапульта не может быть атакована, разрушена или оказаться под действием заклинания.
Ход катапульты наступает перед ходом самого быстрого отряда осаждающих.
Количество последовательных выстрелов, которое катапульта может сделать за один раунд, равно:
Примечание: если герой владеет артефактом Ballista (Баллиста), число последовательных выстрелов катапульты увеличивается на один.
Последовательность разрушения замковых укреплений
*) Вероятности выбора катапультой конкретной стены (нумерация стен сверху вниз):
1-я | 2-я | 3-я | 4-я | |
---|---|---|---|---|
4 стены | 6/21 | 5/21 | 5/21 | 5/21 |
3 стены | 1/3 | 1/3 | 1/3 | - |
2 стены | 11/21 | 10/21 | - | - |
**) Вероятности выбора катапультой конкретной башни:
Левая: 11/21, правая: 10/21.
Один выстрел катапульты наносит 0, 1 или 2 ед. повреждений крепостным стенам, воротам или башням.
Назовём прочностью сооружения количество ед. повреждений, которое это сооружение может выдержать до полного разрушения. Тогда прочность каждой крепостной стены составляет 2 ед.*, ворот и башен - 1 ед.
*) 3 ед. при наличии Укреплений в замке Рыцаря.
Вероятности конкретного урона
Если у героя нет вторичного навыка Баллистика:
0: 25/101 ~ 25%, 1: 51/101 ~ 50%, 2: 25/101 ~ 25% (для игрока-человека);
0: 20/101 ~ 20%, 1: 51/101 ~ 50%, 2: 30/101 ~ 30% (для компьютерного игрока).
Если у героя есть базовая или продвинутая Баллистика:
0: 0, 1: 51/101 ~ 50%, 2: 50/101 ~ 50% (для игрока-человека);
0: 0, 1: 46/101 ~ 45%, 2: 55/101 ~ 55% (для компьютерного игрока).
Если у героя есть экспертная Баллистика:
0: 0, 1: 0, 2: 100%.
Максимальное количество единиц повреждений, которое может нанести катапульта за один раунд, равно 6 ед. (артефакт Баллиста + экспертная Баллистикa).
Таким образом, рекорд скорости полного разрушения самых мощных замковых укреплений (Левая башня + Правая башня + Укрепления) равен 4-м раундам, а при отсутствии артефакта Баллиста, - 6-ти раундам. Нерыцарский замок падёт и того быстрее: за 3 и 4 раунда соотвественно.
V. Подъёмный мост (ворота)
Если нет магии Телепорт, единственный способ для пеших отрядов попасть за крепостные стены, минуя ров, - через открытые или разрушенные ворота. Открыть ворота могут только отряды, защищающие замок. Любой отряд, стоящий или погибший прямо перед воротами, воспрепятствует их открытию. Таким образом можно временно запереть защитников замка за крепостными стенами, если это выгодно осаждающей стороне. Примечание: уничтоженные перед воротами отряды элементалей не годятся для этой цели, т.е. защитники замка всё равно смогут открыть ворота.
Далее, отряды, погибшие на любом гексе открытого моста (открытые ворота занимают два гекса), будут препятствовать его закрытию. Опять же, элементали не годятся и для этой цели (ворота закрываются сразу после уничтожения стоящих на них элементалей).
На этом всё.
В одном из материалов прошлых лет я уже касался данной темы, но актуальность вопроса не уменьшается …
Рассмотрим данный вопрос более конкретно.
В случае взятия замка на седьмой день мы имеем следующие возможности, недоступные при взятии на следующий день:
Полагаю, комментировать эти возможности большого смысла нет. Стартовали за рыцаря или варвара, отстроили 4-5 уровней, снаружи бесплатно загрейдили пару отрядов, взяли титанический замок и поставили там гигантов.
Теперь же посмотрим, какие плюсы мы получим, штурмуя замок на первый день недели, при условии, что мы ходим раньше защищающегося.
Тут главным плюсом является прирост и то, что мы, может быть, сможем воспользоваться тем, что противник отстроил на седьмой день.
Прирост в компьютерных замках при условии отсутствия невыкупленных войск на седьмой день:
Напомню, что прирост в замках под управлением человека, а также в замках компа на любом уровне сложности при условии невыкупленных на седьмой день войск составляет у магических замков 3-4-5-6-8-18, у варваров 4-5-6-7-10-20, у рыцарей 4-5-6-7-10-22.
В отдельных случаях увеличенный прирост является крайне важным фактором, который может серьёзно повлиять на игру. А уж захват замка, где на предыдущий ход компьютер специально для нас поставил драконов или гигантов – вообще может стать решающим аргументом.
Во вторых героях законы сохранения не действуют. То есть вторые герои остались за границей применимости законов сохранения. В частности, это касается отдельных случаев при штурме замка.
Сегодня мы разберёмся с вопросом – а с кем, собственно говоря, мы встретимся в замке при штурме (либо кем мы будем обороняться).
Ну и главное. Сохраняйтесь перед штурмом. Обороняйтесь или штурмуйте. Переигрывайте. Ещё. Ещё. Почувствовали разницу?
AlexSpl и Qwerty желают Вам удовольствия от замечательной игры – Heroes of Might and Magic – 2!