Источник
Большая часть информации для данного раздела взята из справочника FizMiG.
Большая часть информации для данного раздела взята из справочника FizMiG.
Поведение ИИ в бою и на карте приключений зависит от множества факторов. Большинство таких факторов будет рассмотрено в этой статье.
Изначально существует три модели поведения ИИ, которые присваиваются ему случайным образом (если не были назначены автором в редакторе карт): Воин, Строитель и Исследователь. Воин будет стремиться раньше навязать сражение и захватить города, Строитель будет сконцентрирован на отстройке городов, а Исследователь будет стараться задействовать большое количество героев для активного исследования карты и давления. Различия в поведении ИИ могут быть едва заметны на одних картах и разительно отличаться на других.
Поведение компьютерного игрока в зависимости от выбранного уровня сложности меняется следующим образом:
Сложность 80% (Пешка) - играет в 50% силы:
• ИИ-герои не опасаются передвигаться на территории противника, даже вблизи вражеских героев;
• ИИ-герои недооценивают силы вражеского героя при принятии решения о нападении;
• ИИ-игрок строит здания в городах один раз в два дня;
• ИИ-игрок не строит жилища существ уровня выше, чем уже построенный уровень у самого лучшего игрока-человека;
• ИИ-игрок не строит жилища существ 7 уровня в своих городах;
• ИИ-герои не присоединяют нейтралов к своей армии;
• ИИ-игрок не занимается поисками Грааля;
• ИИ-герои не обмениваются между собой армиями и артефактами;
• ИИ-герои в бою не используют тактические приемы существ, не ждут и всегда идут в атаку;
• Большинство нейтралов лояльны к игрокам и могут присоединяться;
• ИИ-игрок не нанимает новых героев, если на карте в сумме 9 или более героев (включая героев других игроков).
Сложность 100% (Конь) - играет в 75% силы:
• ИИ-герои недооценивают силы вражеского героя при принятии решения о нападении;
• ИИ-герои объединяют армии, составляя наиболее сильные варианты;
• ИИ-игрок строит здания в городах один раз в два дня;
• ИИ-игрок более агрессивно развивает города;
• ИИ-герои начинают поиск Грааля при открытии не менее половины карты-загадки;
• ИИ-игрок делает большой акцент на изучение карты;
• ИИ-герои опасаются передвигаться на территории противника, особенно вблизи вражеских героев;
• ИИ-игрок не нанимает более 3 героев;
• ИИ-игрок не нанимает новых героев, если на карте в сумме 12 или более героев (включая героев других игроков).
Сложность 130% (Ладья) - играет в 100% силы:
• ИИ-герои всегда точно высчитывают силу вражеского героя, и, если она выше, то не нападают;
• ИИ-герои опасаются передвигаться на территории противника, особенно вблизи вражеских героев;
• ИИ-игрок строит здания в городах каждый день;
• ИИ-игрок очень агрессивно развивает города;
• ИИ-герои начинают поиск Грааля при открытии не менее 25% карты-загадки;
• ИИ-игрок не нанимает более 4 героев;
• ИИ-игрок во время боя учитывает дальность хода вражеских войск и использует эту информацию в тактическом плане (он не заходит в диапазон хода, если знает, что вражеское существо его атакует и т.д.);
• ИИ-игрок не нанимает новых героев, если на карте в сумме 15 или более героев (включая героев других игроков).
Сложность 160% (Ферзь) - играет в 100% силы:
• ИИ-герои очень осторожны при движении на территории противника, особенно вблизи вражеских героев;
• ИИ-герои начинают поиск Грааля при открытии хотя бы одной части карты-загадки;
• ИИ-игрок не нанимает более 5 героев;
• ИИ-игрок не нанимает новых героев, если на карте в сумме 18 или более героев (включая героев других игроков).
Сложность 200% (Король) - играет в 100% силы:
• ИИ-игрок не нанимает более 6 героев;
• ИИ-игрок не нанимает новых героев, если на карте в сумме 21 или более героев (включая героев других игроков).
Сложность | Ресурсы игрока | ||||
---|---|---|---|---|---|
Ртуть, сера, кристаллы и самоцветы | Древесина и руда | Золото | Доход города на старте | ||
1 | 80% | по 15 | по 30 | 30000 | 500 |
2 | 100% | по 10 | по 20 | 20000 | 500 |
3 | 130% | по 7 | по 15 | 15000 | 500 |
4 | 160% | по 4 | по 10 | 10000 | 500 |
5 | 200% | по 0 | по 0 | 0 | 500 |
Сложность | Ресурсы компьютерных игроков | ||||
---|---|---|---|---|---|
Ртуть, сера, кристаллы и самоцветы | Древесина и руда | Золото | Доход города на старте | ||
1 | 80% | по 2 | по 5 | 5000 | 375 |
2 | 100% | по 4 | по 10 | 7500 | 500 |
3 | 130% | по 7 | по 15 | 10000 | 500 |
4 | 160% | по 7 | по 15 | 10000 | 625 |
5 | 200% | по 7 | по 15 | 10000 | 750 |
Помимо этого компьютерные игроки имеют дополнительный ежедневный бонус по всем ресурсам в течение всего периода игры:
Сложность | Золото | Древесина и руда | Ртуть, сера, кристаллы и самоцветы | |
---|---|---|---|---|
1 | 80% | -25% | - | - |
2 | 100% | - | - | - |
3 | 130% | - | - | - |
4 | 160% | +25% | +39% | +14% |
5 | 200% | +50% | +53% | +28% |
Расчет этого бонуса производится следующим образом: ежедневно рассчитывается доход компьютерного игрока по всем видам ресурсов и считается бонус, применительно к величине его недельного дохода (если доход отсутствует, бонус не начисляется). Распределяется бонус равномерно по всей неделе.
Кроме того, в мультиплеерной игре существует функция Помехи:
• Если помехи нет, то герой начинает игру с количеством ресурсов, соответствующим установленной сложности.
• При средней помехе все стартовые ресурсы игрока и его ежедневный доход всех ресурсов (включая ресурсы Сокровищницы, Хранилища ресурсов, Кристаллических драконов и т.д.) снижаются на 15% с округлением вниз.
• При большой помехе все стартовые ресурсы игрока и его ежедневный доход всех ресурсов снижаются на 30% с округлением вниз.
Интересный факт: при перемещении по карте приключений герои ИИ не могут подбирать ресурсы и артефакты и заходить в объекты, находящиеся на соседних клетках с нейтральным существом, если они не могут его победить, несмотря на то, что такой ресурс или артефакт можно взять сбоку, а вход в объект не активирует бой с нейтралом.
ИИ выбирает вторичные навыки не случайно, как это делает игрок, а на основе четко прописанного алгоритма, некоторых расчетных значений (Х) для каждого навыка, которые не являются постоянными и пересчитываются в течение всей игры. Проще говоря, когда компьютерному герою предлагают выбор из повышения имеющегося навыка (левый слот) и нового навыка (правый слот), то ИИ сначала оценивает все 28 вторичных навыков. Затем оценивает предлагаемый новый навык (правый слот), и, если он входит в число (8 минус Количество уже занятых слотов вторичных навыков) наиболее ценных навыков, выбирает его. В противном случае ИИ выбирает повышение имеющегося навыка.
Если герою предлагают выбор из двух новых навыков (все имеющиеся навыки уже Экспертного уровня) или двух повышений имеющихся навыков (не осталось свободных слотов вторичных навыков), то ИИ оценивает оба навыка и выбирает наибольшее из значений (Х). Если значения обоих навыков равны, то ИИ выбирает навык из левого слота.
Если компьютерный герой посещает Университет, то ИИ оценивает все навыки из доступных и выбирает все, что входят в число (8 минус Количество уже занятых слотов вторичных навыков). Если у игрока не хватает золота на все выбранные, то ИИ берет навыки по очереди, начиная с самого ценного, пока не кончится золото. Если герой не получил все навыки, которые выбрал, то он может вернуться к Университету позже. В этом случает ценность посещения Университета будет снижена с учетом оставшихся навыков. ИИ всегда знает какие навыки предлагаются в Университете, даже если он его еще не посещал, и, исходя из этого, рассчитывает ценность его посещения.
Далее приведены те самые расчетные значения (Х) для каждого навыка:
Поиск пути | Х = ((1000 + ArmyPower) * k / 4) |
где k - коэффициент, зависящий от предлагаемого уровня Поиска пути:
• Базовый Поиск пути: k = Кол-во клеток на карте со штрафами местности / Общее кол-во клеток на карте;
• Продвинутый Поиск пути: В количестве клеток на карте со штрафами не учитываются Камни.
• Экспертный Поиск пути: В количестве клеток на карте со штрафами не учитываются Камни, Снег и Песок.
ArmyPower = HeroPower * CreaturePower (см. раздел 'Дипломатия').
Стрельба | Х = ((500 + RangedUnitsPower) * k) |
где k = 16 для Базовой Стрельбы; k = 7 для Продвинутой Стрельбы; k = 11 для Экспертной Стрельбы.
RangedUnitsPower - сумма AI Values всех стрелковых существ в армии.
Логистика | Х = ((1000 + ArmyPower) * 0,1) |
Разведка, Некромантия, Обучаемость | Х = ((1000 + ArmyPower) * 0,05) |
Дипломатия | Х = ((1000 + ArmyPower) * 0,01) |
Навигация | Х = ((1000 + ArmyPower) * k / 2) |
где k = Кол-во клеток воды на карте / Общее кол-во клеток на карте.
Лидерство, Удача, Тактика | Х = ((1000 + ArmyPower) * 0,02) |
Мудрость | Х = (theStrongestSpellEfficiencyDelta * СМ * 0,5) |
где СМ - Сила магии героя.
theStrongestSpellEfficiencyDelta - разница между эффективностью самого сильного заклинания, имеющегося у героя, с прибавкой +1 к СМ и +1 к длительности и без прибавки. По расчету это могут быть два разных заклинания, а также разница не может быть меньше 10.
Эффективность заклинаний определяется следующим образом:
• ИИ никогда не использует следующий заклинания: Затопить корабль, Видения, Просмотр земли, Просмотр воздуха, Маскировка, Зыбучие пески, Минное поле, Силовое поле, Стена огня и Устранение преград. Их эффективность равна 0;
• Эффективность Жертвы и Забывчивости всегда равна 0;
• Эффективность всех заклинаний 3-5 уровня приравнивается к 0, если на герое Плащ отречения;
• Эффективность Грома титана всегда равна 1;
• Общая формула эффективности остальных заклинаний:
ArmyPower * SpellAIValue * k
где ArmyPower = HeroPower * CreaturePower ; SpellAIValue - ценность заклинания (см. раздел 'Ценность заклинаний');
k = 0,009 + 0,001 * sqrt((Запас маны героя / Стоимость использования заклинания)). Если запаса маны героя не хватает на хотя бы одно применение заклинания, то его эффективность приравнивается к 0;
• Для Воскрешения, Поднятия мертвецов, Гипноза, Вызова элементалей:
k = min (3.9, ScaleFactor (min (13, [Запас маны героя / Стоимость использования заклинания])) * min (0.9, 10 * (СМ + EffectiveMagicSchoolLevel) / ArmyPower))
где ScaleFactor(N):
N = 0 | N = 1 | N = 2 | N = 3 | N = 4 | N = 5 | N = 6 |
---|---|---|---|---|---|---|
0 | 0.83 | 1.53 | 2.11 | 2.59 | 2.99 | 3.33 |
N = 7 | N = 8 | N = 9 | N = 10 | N = 11 | N = 12 | N = 13 |
---|---|---|---|---|---|---|
3.6 | 3.84 | 4.03 | 4.19 | 4.33 | 4.44 | 4.53 |
min(а, б, ...) - минимальное значение из а, б, ….
• Для Волшебной стрелы, Ледяной молнии, Молнии, Взрыва, Кольца холода, Огненного шара и Метеоритного дождя:
k = min(k1, k2)
k1 = k3 * ScaleFactor(min (13, [Запас маны героя / Стоимость использования заклинания]));
k3 = 10 * (СМ + EffectiveMagicSchoolLevel) * SpellAIValue * ElementalOrbsMod * SorceryMod / ArmyPower;
k2 определяется по следующей таблице в зависимости от значение k3:
k3 > 4,8 | 4,799 … 1,557 | 1,556 … 0,752 | 0,751 … 0,433 | 0,432 … 0,275 | 0,274 … 0,186 | 0,185 … 0,131 |
---|---|---|---|---|---|---|
4 | 0,5 * k3 + 1,6 | 0,987 * k3 + 0,842 | 1,452 * k3 + 0,492 | 1,888 * k3 + 0,303 | 2,291 * k3 + 0,192 | 2,657 * k3 + 0,124 |
0,13 … 0,095 | 0,094 … 0,071 | 0,07 … 0,054 | 0,053 … 0,041 | 0,04 … 0,032 | 0,031 … 0,025 | k3 < 0,025 |
---|---|---|---|---|---|---|
2,986 * k3 + 0,081 | 3,277 * k3 + 0,053 | 3,353 * k3 + 0,035 | 3,755 * k3 + 0,023 | 3,947 * k3 + 0,016 | 4,112 * k3 + 0,01 | 4,53 * k3 |
• Для Цепной молнии и Инферно (определения k, k2 и k3 аналогичны):
k1 = 0,83 * k3 (т.е. тут [Запас маны героя / Стоимость использования заклинания] считается равным 1).
• Для Волны смерти, Упокоения нежити и Армагеддона эффективность рассчитывается по формуле (определения k1 и k2 аналогичны):
max (0, [ResistantCreaturesPower * min (k1, k2)] - (ArmyPower - ResistantCreaturesPower))
где max (а, б, ...) - максимальное значение из а, б, …;
ResistantCreaturesPower - сумма (DamageResistance * AI Value) всех существ в армии героя;
DamageResistance = 1 для существ полностью защищенных от заклинания; DamageResistance = 0,2 / 0,4 / 0,2 для Гномов, Боевых гномов и Кристаллических драконов соответственно.
• Для остальных заклинаний (в основном это заклинания типа Проклятия и Благословения) эффективность рассчитывается по формулам:
Для целевых заклинаний: [SpellAIValue * AffectedCreaturesPower * min (7, Длительность * [Запас маны героя / Стоимость использования заклинания]) * 1 / 700]
где AffectedCreaturesPower - сумма AI Value всех существ в армии героя, на которых заклинание действует. Для Проклятия защита не учитывается.
Также рассчитывается Максимальное кол-во отрядов, на которых заклинание подействует:
MN = max (1, min (Длительность, [Длительность * [Запас маны героя / Стоимость использования заклинания] * 1 / 7]))
И, если у героя больше отрядов, чем это значение, то AffectedCreaturesPower считается как сумма AI Value MN самых сильных отрядов в армии.
Для массовых заклинаний формула эффективности аналогична, но MN всегда равно общему количеству отрядов у героя.
Мистицизм | Х = (theStrongestSpellEfficiencyDelta2 * 0,1) |
где theStrongestSpellEfficiencyDelta2 = [1 / 3 * ([theStrongestSpellEfficiencyDelta (с учетом прибавки +30 к Запасу маны героя) ] - [theStrongestSpellEfficiencyDelta (без прибавки) ]).
Баллистика | Х = ((1000 + Army_power) * 0,125) |
Орлиный глаз | Х = (theStrongestSpellEfficiencyDelta * 0,2) |
Если у героя нет Мудрости, то значение приравнивается к 0.
Поместья | Х = (AIPlayerWealthFactor * k) |
где k - коэффициент, зависящий от предлагаемого уровня навыка Поместья:
• Базовый или Продвинутый: k = 725;
• Экспертный: k = 1550.
Если компьютерному игроку не на что тратить золото (из строений в городах):
AIPlayerWealthFactor = TownsMod
где TownsMod - коэффициент, зависящий от количества городов у компьютерного игрока:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | >8 |
---|---|---|---|---|---|---|---|---|---|
0 | 0.1 | 0.15 | 0.2 | 0.25 | 0.3 | 0.35 | 0.4 | 0.45 | 0.5 |
• Если у компьютерного игрока достаточно золота, чтобы построить / купить то, что он планирует:
AIPlayerWealthFactor = k + (1 - k) * TownsMod
где k = Необходимая сумма золота для постройки / (Текущее кол-во золота + Доход золота в день)
• Если у компьютерного игрока недостаточно золота, чтобы построить / купить то, что он планирует:
AIPlayerWealthFactor = min (1 / TownsMod, k)
• AIPlayerWealthFactor пересчитывается каждый раз, когда компьютерный игрок тратит золото.
Магия огня, Магия воды, Магия земли, Магия воздуха | Х = theStrongestSpellEfficiencyDelta3 |
theStrongestSpellEfficiencyDelta3 - разница между эффективностью самого сильного заклинания, имеющегося у героя, с учетом полученного навыка и без его учета.
Грамотность | Х = (theStrongestSpellEfficiencyDelta * СМ * 0,2) |
Если у героя нет Мудрости, то значение приравнивается к 0.
Артиллерия | Х = 10 * Атака героя |
Если у героя нет Баллисты, то значение приравнивается к 0.
Нападение, Доспехи | Х = ((1000 + ArmyPower) * 0,07) |
Интеллект | Х = (theStrongestSpellEfficiencyDelta2 * Знания_героя * 0,25) |
Волшебство | Х = (theStrongestSpellEfficiencyDelta * СМ * 0,05) |
Сопротивление | Х = ((1000 + ArmyPower) * 0,025) |
Первая помощь | Х = 250 |
Если у героя нет Палатки первой помощи, то значение приравнивается к 0.
Кроме выбора вторичных навыков, перед героями ИИ стоит выбор артефактов - какие стоит носить на себе, а какие лучше отправить в рюкзак. Как и со вторичными навыками, компьютерный ИИ пользуется простыми правилами, для оценки артефактов:
• Если у героя ИИ слот артефакта пустой, то подобрав артефакт этого типа, он помещает его в этот слот, не зависимо от его свойств
• Если у героя ИИ слот артефакта занят артефактом более высокой ценности, чем подбираемый, то новый артефакт помещается в рюкзак
• Если у героя ИИ слот артефакта занят артефактом более низкой ценности, чем подбираемый, то новый артефакт замещает его, а менее ценный перемещается в рюкзак
• Если у героя ИИ слот артефакта занят артефактом такой же ценности, чем подбираемый, то новый артефакт помещается в рюкзак
Герои ИИ очень странно взаимодействуют со сборными артефактами:
• Если у героя свободны все слоты, которые занимает и блокирует сборный артефакт, то он его экипирует
• Если у героя занят только тот слот, который занимает сборный артефакт, а слоты, которые он блокирует свободны, он его экипирует (для отдельного слота сборные артефакты имеют наивысшую ценность)
• Если у героя уже есть все части сборного артефакта, он не станет его собирать
• Если хотя бы один слот, который блокирует сборный артефакт, занят, то герой ИИ не станет экипировать сборный артефакт
• Если у героя есть все кроме одной части сборного артефакта экипированы, а недостающая часть при получении сразу попадает в свободный слот, то герой соберет артефакт
• Если у героя экипирован сборный артефакт, а к нему попадает более ценный сборный артефакт в тот же слот, который можно экипировать не заменяя никаких элементов экипировки, кроме уже надетого сборного артефакта, герой ИИ заменит его
Кроме того, компьютерный ИИ не может провести оценку эффективности артефактов в разных условиях. Так имея в рюкзаке Сапоги левитации и Сандалии святых, герой никогда не наденет Сапоги левитации, даже если окажется заперт на клочке земли окруженном водой.
Существует одна ошибка - герой ИИ не использует артефакты, полученные из Утопий драконов или полученные после победы над другим героем, если у него занят этот слот другим артефактом, даже меньшей ценности. Такие артефакты просто помещаются в рюкзак.
На странице Артефактов указаны значения ценности артефактов. Чем выше это значение, тем предмет предпочтительнее для компьютерного игрока.
Все артефакты для слота 'Разное' имеют ценность 1. Это обусловлено тем, что к выбору таких артефактов компьютерный ИИ подходит иначе. Их ценность может изменяться в зависимости от потребности в том или ином действии. Так, например, Неистощимая телега древесины может в определенной ситуации стать ценнее, чем Книга магии земли. Подход к выбору артефакта зависит от неисчислимого количества факторов, начиная от опасности нападения со стороны врага и заканчивая необходимостью выполнить задание в хижине провидца.
Несмотря на такой разумный подход, ряд артефактов практически не представляет ценности для ИИ, в их число входят Брелок маны, Талисман маны и Мистическая сфера маны. При одном свободном слоте под все эти три артефакта, компьютер наденет тот, что первый попадет в его сумку и не станет его заменять, хотя Мистическая сфера маны имеет очевидное преимущество перед двумя другими артефактами.
Перемещаясь по карте приключений герои под управлением ИИ принимают решения о нападении и ненападении основываясь на превосходстве над героем противника или нейтральным существом. Кроме очевидных преимуществ по характеристикам, артефактам, заклинаниям (которые ИИ всегда видит у игрока) ИИ сравнивает также показатель Ценности существ (AI Value). Параметр Ценность измеряется в единицах и определяет условную ценность существа. Чем он выше, тем существо ценнее. Значения Ценности можно увидеть, перейдя на страницу Существ и кликнув по нужному юниту.
При нападении героев ИИ на нейтральных существ параметр Ценности становится первостепенным фактором и тут вступает в силу класс героя ИИ (они подробно разобраны в статье 'Классы героев'), а точнее его параметр агрессии. Если Агрессия ≥ Суммарная ценность нейтральной армии / Суммарная ценность армии героя, то герой атакует нейтральную армию на карте приключений.
Ниже приведены показатели агрессии для разных классов:
Рыцарь | 1.0 | Лорд | 1.0 | |
Священник | 0.8 | Чернокнижник | 1.0 | |
Рэйнджер | 1.0 | Варвар | 1.1 | |
Друид | 0.8 | Боевой маг | 1.1 | |
Алхимик | 1.0 | Хозяин зверей | 0.9 | |
Маг | 1.0 | Ведьма | 1.0 | |
Одержимый | 1.2 | Путешественник | 0.9 | |
Еретик | 1.1 | Элементалист | 1.0 | |
Рыцарь смерти | 1.2 | Капитан | 1.0 | |
Некромант | 1.0 | Навигатор | 1.0 |
Ценность также влияет на то, каких существ герой ИИ будет набирать себе в армию, в том случае, если у него есть доступ к внешним жилищам других замков или захваченные 'неродные' замки. Несмотря на это, существуют и исключения: в каждом типе города есть по одному виду существ, которые ИИ никогда не берет в армию, но скупает и оставляет в городе. Таким образом, в любой армии героя ИИ может быть до 6 видов существ из его родного города. ИИ не берет в армию следующих существ: Алебардщиков, Чертей, Хобгоблинов, Дендроидов-солдатов, Зомби, Гноллов-мародеров, Гремлинов-мастеров, Адских троглодитов, Элементалей магмы, Головорезов (несмотря на то, что их Ценность выше некоторых других существ этих замков).
Также существует маленькая хитрость связанная с поведением ИИ. Если на пути к герою-человеку у героя ИИ находится нейтральное существо или страж задания, через который ИИ не может пройти, то герой-человека станет для него 'невидимым' и он не будет на него реагировать.
Наверняка многие из вас замечали, что компьютерный ИИ довольно стандартно использует те или иные заклинания. Некоторые он и вовсе пытается избегать, а другие использует очень часто или наоборот. В ресурсах игры каждое заклинание в игре имеет особый параметр AI Values - ценность использования этого заклинания для ИИ. Однако, как показывают тесты, AI Values не является безусловным фактором для выбора. ИИ для каждого из имеющихся у него заклинаний проводит целую процедуру 'взвешивания'. Возможно, AI Values заклинаний отражают некий усредненный массив данных результатов 'взвешивания' различных заклинаний, то есть отражают представления ИИ об их ценности. Но используются эти значения не для выбора заклинания в какой-то момент игры, а в других целях, например, для сопоставления силы своего героя с героем противника, выбора цели для движения по карте, свиток с каким заклинанием предпочтительнее взять и т.д., но эта информация не точна на 100%.
Для разных заклинаний алгоритм 'взвешивания' очень отличается, хотя можно выделить несколько наиболее часто используемых, которые применяются по сути для нескольких заклинаний, а не для одного (с небольшими отличиями). Например, для 'взвешивания' Ослепления наибольшее значение имеет сила отрядов противника, которые в свой ближайший ход смогут ударить дружественный отряд. При этом продолжительность Ослепления практически не учитывается (надо сказать, что алгоритмы 'взвешивания' не всегда работают идеально). Интересно, что иногда в алгоритмах взвешивания учитывается примерное соотношение силы двух армий в бою (не отрядов, а армий суммарно). С помощью этого соотношения ИИ примерно прикидывает продолжительность битвы (равные армии = высокая продолжительность боя).
Алгоритмы, используемых ИИ в битве:
• Перед каждой битвой с участием ИИ, алгоритм вычисляет соотношение сил армий, причем, чем ближе оно к 1, тем большее число сопоставляет компьютер. То есть он рассматривает эту величину приблизительно как ожидаемую продолжительность битвы (ее решающей фазы).
• Алгоритм создает и обновляет набор битов (1 набор на всю армию - армию противника ИИ), отражающих возможность каждого отряда 'дотянуться' до противника.
Далее приведена таблица AI Values для всех заклинаний ИИ. Особенности применения ИИ данных параметров требуют тестирования и доработки.
Заклинания | Уровень развития Магии стихии | ||
---|---|---|---|
Нет / Базовый | Продвинутый | Экспертный | |
Походные заклинания | |||
Городской портал | 5 | 70 | 70 |
Полет, Дверь измерений | 30 | 40 | 50 |
Хождение по воде | 15 | 20 | 25 |
Вызвать корабль | 10 | 20 | 20 |
Затопить корабль, Видения, Просмотр земли, Маскировка, Просмотр воздуха | 1 | 1 | 1 |
Боевые заклинания | |||
Вызов элементалей | 50 | 100 | 150 |
Воскрешение | 50 | 60 | 120 |
Поднять мертвецов | 60 | 60 | 120 |
Армагеддон | 100 | 100 | 100 |
Гипноз | 25 | 50 | 100 |
Взрыв, Цепная молния, Гром титана | 75 | 75 | 75 |
Берсерк | 60 | 60 | 60 |
Воздушный щит | 20 | 50 | 50 |
Ослепление | 50 | 50 | 50 |
Клон | 20 | 40 | 50 |
Упокоить нежить | 40 | 40 | 40 |
Метеоритный дождь | 37 | 37 | 37 |
Бешенство | 10 | 20 | 30 |
Контрудар | 20 | 30 | 30 |
Молния | 25 | 25 | 25 |
Волшебное зеркало | 10 | 15 | 20 |
Ледяная молния, Инферно, Волна смерти | 20 | 20 | 20 |
Щит | 10 | 20 | 20 |
Антимагия | 12 | 18 | 24 |
Телепорт | 20 | 20 | 20 |
Молитва | 8 | 16 | 16 |
Огненный шар | 15 | 15 | 15 |
Огненный щит | 10 | 12 | 15 |
Жажда крови, Точность, Слабость, Каменная кожа, Разрушающий луч | 7 | 15 | 15 |
Медлительность | 5 | 15 | 15 |
Кольцо холода | 12 | 12 | 12 |
Благословение, Проклятие | 10 | 11 | 11 |
Волшебная стрела | 10 | 10 | 10 |
Ускорение | 5 | 10 | 10 |
Защита от стихий (воздух, огонь, вода, земля) | 2 | 4 | 4 |
Лечение | 4 | 4 | 4 |
Снятие заклинаний | 3 | 3 | 3 |
Радость, Печаль, Удача, Неудача | 1 | 2 | 2 |
Зыбучие пески, Минное поле, Силовое поле, Стена огня, Землетрясение, Жертва, Палач, Забывчивость, Устранение преград | 1 | 1 | 1 |
Герой ИИ, анализируя заклинания своего оппонента, может отказаться от использования той или иной магии в силу ее бесполезности. Например, если у игрока в арсенале нет ни одного атакующего заклинания (наносящего урон), то компьютерный ИИ не станет использовать заклинания Волшебное зеркало и Антимагия, аналогично дело обстоит с заклинаниями Защита от огня, воды, воздуха и земли; Если у игрока нет заклинаний соответствующих стихий, то герой ИИ не станет использовать эти заклинания.
Компьютерный игрок не использует заклинание Гипноз, если в армии игрока остался один отряд существ, а следующие заклинания ИИ не использует вовсе: Затопить корабль, Видения, Просмотр земли и воздуха, Маскировка, Зыбучие пески, Минное и Силовое поле, Стена огня и Устранение преград.
Герои под управлением ИИ распределяют свои войска в соответствии с определенными принципами:
• ИИ разделяет все свои войска на 2 категории: стрелки и отряды ближнего боя.
• В первую очередь расставляются именно стрелковые отряды. В порядке приоритета они помещаются в слоты 1-3-5-7-2-4-6. Например, если в армии героя ИИ из стрелков имеются только Арбалетчики, Монахи и Фанатики, то он поместит их в слоты 1, 3 и 5.
• Порядок расстановки стрелков зависит от их Скорости, т.е. самых быстрых он ставит в слот 1, и далее по порядку, указанному выше. Если несколько стрелковых отрядов имеют одинаковую Скорость, то он расположит их случайно между соответствующими слотами.
• Во вторую очередь расставляются отряды ближнего боя. Все они помещаются в свободные слоты начиная с левого (верхнего на поле боя) к правому (нижнему на поле боя) в порядке уменьшения их Скорости.
• Если несколько отрядов ближнего боя имеют одинаковую Скорость, то ИИ расположит их по id - индивидуальному порядковому номеру существа, т.е. сперва будут войска Замка, Оплота, Башни и т.д., а в конце нейтралы (Драконы). Внутри одного города id считается от существ 1 уровня к 7 уровню, причем неулучшенные войска идут вперед улучшенных.
• При осаде города появляется особенность - отряды ближнего боя с одинаковой Скоростью ИИ располагает в обратном порядке значения id.
• Если в армии героя ИИ меньше 7 видов существ, то порядок приоритета слотов меняется и стрелков он помещает следующим образом:
Кол-во отрядов | Порядок слотов, в которые помещаются стрелки |
6 | 1-3-5-6-2-4 |
5 | 1-3-4-5-2 |
4 | 1-2-3-4 |
3 | 1-2-3 |
2 | 1-2 |
1 | 1 |
В разделе приведены общие наблюдения за поведением существ, управляемых компьютером (ИИ).
• Если существо ИИ имеет большую Скорость, чем существа игрока, то он:
а) Войдет этим существом в зону досягаемости существ игрока, атаковав какую-нибудь цель.
б) Будет Ждать, если атаковать некого.
• При наличии хотя бы одного отряда ИИ в зоне досягаемости существ игрока, другие отряды ИИ смело будут идти в сторону игрока без ожидания, даже если ни до кого не достают.
• Существа ИИ всегда идут к ближайшему отряду (считается по количеству ходов, а не клеток, причем по текущей скорости, с учетом наложенных заклинаний) - на этом основаны действия ИИ при использовании заклинаний: если ИИ видит, что он может использовать Ускорение на свой отряд и он достанет до вражеского существа, чтобы атаковать его, ИИ будет колдовать, иначе он может, например, использовать Волшебную стрелу или Каменную кожу. Таким образом можно вынуждать ИИ использовать определенные заклинания.
• При нескольких вражеских отрядах в зоне досягаемости, ИИ выбирает цель исходя из следующих приоритетов:
а) Сила ответного удара (расчет ведется по текущему количеству существ в потенциальном атакуемом отряде, а не от того, сколько должно остаться после удара): ИИ старается выбрать минимальное значение.
б) Учитывает свое текущее положение в битве (выигрышное или проигрышное положение): Если ИИ считает, что сможет выиграть, то атакует отряды, расположенные ниже. При проигрышном положении ИИ начинает с верхних.
в) ИИ старается использовать способности и возможности своих существ, например блокировать стреляющих бойцов или использовать дыхание Драконов, наложить заклинание при ударе (Слабость у Ядовитых змиев).
Это были основные принципы поведения ИИ в бою, но существуют и другие, менее значимые:
• Если вражеских отрядов, которых его существо сможет атаковать за минимальное количество ходов, несколько, то работает множество сложных факторов: соотношение сил армий, зоны досягаемости другими своими отрядами, соотношение силы ответного удара к показателю AI Value, влияние уже снятого ответного удара, заклинания и т.д. Это неполный список факторов.
• Стена огня. Нейтралы ее прекрасно видят и легко обходят, если есть такая возможность. Иногда нейтралы могут сменить приоритетную цель атаки, если к первой цели мешает подойти Стена огня.
• Например, если отряд игрока достает до какого-нибудь отряда ИИ, то подставиться под него ИИ не считает неправильным (т. к. он в любом случае ударит какой-нибудь отряд).
• Если какой-то отряд игрока ни до кого не доходит в этот раунд, то ИИ будет минусовать урон от этого отряда из ценности удара ИИ по тем существам игрока, при ударе по которым он подставится под этот отряд игрока. При этом из выражения (Кол-во существ * Fight Value) (отряда игрока, по которому планируется удар) напрямую вычитается ценность урона (от другого отряда игрока, под который ИИ может подставиться, ударив первый отряд), т.е., ценность тех существ, которые умирают от этого урона (их количество может быть дробным). А ценность 1 существа - уже есть Fight Value. При этом дается плюс к ценности, если верхнее существо в отряде с небольшим количеством здоровья и оно убивается.
Ценность убийства существа основывается на его Fight Value - параметре, привязанном к каждому существу в игре и использующемуся для расчета боевых действий ИИ. (В целом параметр Fight Value (Боевая ценность существ) определяет силу существа в числовом значении. Точное значение боевой ценности существ прописаны в таблице ниже. Плюс идет учет ряда динамических факторов - усиливающие отряд заклинания и прочее. Ответный удар считается от оставшегося после удара отряда исходя из среднего урона.
Крестьянин | 15 | Мумия | 270 | Птица грома | 869 |
Пикси | 40 | Адская гончая | 275 | Могущественный лич | 889 |
Бес | 50 | Кочевник | 285 | Король минотавров | 890 |
Нимфа | 52 | Цербер | 308 | Горгона | 890 |
Гремлин | 55 | Корсар | 311 | Фангарм | 929 |
Гремлин-мастер | 55 | Водный элементаль | 315 | Тролль | 1024 |
Океанида | 60 | Элементаль льда | 315 | Могучая горгона | 1028 |
Хоббит | 60 | Грифон | 324 | Виверна | 1050 |
Черт | 60 | Воздушный элементаль | 324 | Циклоп | 1055 |
Гоблин | 60 | Элементаль шторма | 324 | Властитель пропасти | 1071 |
Хобгоблин | 65 | Каменный голем | 339 | Король циклопов | 1110 |
Фея | 70 | Огненный элементаль | 345 | Мантикора | 1215 |
Гнолл | 70 | Элементаль энергии | 360 | Скорпикора | 1248 |
Троглодит | 73 | Королевский грифон | 364 | Ифрит | 1413 |
Скелет | 75 | Морской волк | 376 | Никс | 1415 |
Троглодит-охотник | 84 | Медуза | 379 | Психический элементаль | 1431 |
Скелет-воин | 85 | Дух океана | 386 | Виверна-монарх | 1518 |
Гнолл-мародер | 90 | Пегас | 407 | Единорог | 1548 |
Кентавр | 100 | Железный голем | 412 | Кавалерист | 1668 |
Копейщик | 100 | Снайпер | 415 | Элементаль магии | 1724 |
Арбалетчик | 115 | Земляной элементаль | 415 | Черный рыцарь | 1753 |
Искусный арбалетчик | 115 | Маг | 418 | Никс-воин | 1763 |
Ящер | 115 | Серебряный пегас | 418 | Чемпион | 1800 |
Алебардщик | 115 | Медуза-королева | 423 | Султан-ифрит | 1802 |
Капитан кентавров | 115 | Мечник | 445 | Нага | 2016 |
Ящер-воин | 130 | Демон | 445 | Рыцарь смерти | 2029 |
Наездник на волке | 130 | Архимаг | 467 | Боевой единорог | 2030 |
Вор | 135 | Сатир | 471 | Костяной дракон | 2420 |
Гарпия | 140 | Ассида | 478 | Королева наг | 2840 |
Живой мертвец | 140 | Рогатый демон | 480 | Огненная птица | 3097 |
Гог | 145 | Монах | 485 | Гигант | 3146 |
Наездник на кабане | 145 | Элементаль магмы | 490 | Чудище | 3162 |
Каменная горгулья | 150 | Фанатик | 500 | Морской змей | 3162 |
Обсидиановая горгулья | 155 | Василиск | 506 | Призрачный дракон | 3228 |
Матрос | 155 | Вампир | 518 | Ангел | 3585 |
Зомби | 160 | Огр | 520 | Зеленый дракон | 3654 |
Налетчик | 174 | Великий василиск | 561 | Дьявол | 3759 |
Головорез | 174 | Крестоносец | 588 | Красный дракон | 3762 |
Орк | 175 | Стальной голем | 597 | Гидра | 4120 |
Гном | 194 | Золотой голем | 600 | Феникс | 4929 |
Эльф | 195 | Жрица морей | 608 | Титан | 5000 |
Благородный эльф | 195 | Лорд вампиров | 652 | Архидьявол | 5243 |
Гарпия-ведьма | 196 | Заклинательница | 655 | Гидра хаоса | 5272 |
Вождь орков | 200 | Огр-маг | 672 | Древнее чудище | 5397 |
Пират | 208 | Джинн | 680 | Аспид | 5554 |
Лепрекон | 208 | Дендроид | 690 | Архангел | 6033 |
Боевой гном | 209 | Лич | 742 | Золотой дракон | 6220 |
Магог | 210 | Мастер-джинн | 748 | Черный дракон | 6783 |
Змий | 215 | Отродье пропасти | 765 | Сказочный дракон | 16317 |
Дух | 231 | Дендроид-солдат | 765 | Ржавый дракон | 24030 |
Бехолдер | 240 | Алмазный голем | 775 | Кристаллический дракон | 30260 |
Зловещий глаз | 245 | Птица рух | 790 | Лазурный дракон | 56315 |
Ядовитый змий | 250 | Чародей | 805 | ||
Привидение | 252 | Минотавр | 835 |
(Правила поведения героев ИИ распространяются и на поведение нейтральных существ в битве)
Герои ИИ умеют сбегать с поля боя и откупаться как и герой-человек, однако делают это не всегда. Как правило герой сбежит, если поймет, что в ближайший ход понесет поражение или большие потери, однако бывают случаи, когда герой не сбегает вовсе или сбегает и ИИ не выкупает его в Таверне.
ИИ не считает угрозой призванных Элементалей и не будет выходить из-за стен города, даже если они остались одни.
Также особый интерес представляет выбор целей для стрелковых башен под управлнием ИИ (до тех пор, пока у героя под управлением игрока нет навыка Артиллерии, стрелковые башни также управляются компьютерным ИИ).
У стрелковых башен есть особый приоритет целей. Ниже приведен список всех существ, где 1 - наивысший приоритет.
Крестьянин | 1 | Фанатик | 15 | Отродье пропасти | 22 |
Пикси | 2 | Наездник на кабане | 15 | Властитель пропасти | 22 |
Фея | 2 | Пегас | 15 | Ифрит | 22 |
Гремлин-мастер | 3 | Серебряный пегас | 15 | Султан-ифрит | 22 |
Нимфа | 3 | Архимаг | 15 | Стальной голем | 22 |
Океанида | 3 | Живой мертвец | 15 | Минотавр | 23 |
Хоббит | 3 | Лепрекон | 15 | Король минотавров | 23 |
Гремлин | 4 | Вампир | 15 | Золотой голем | 23 |
Бес | 4 | Лич | 15 | Дендроид | 24 |
Черт | 4 | Медуза-королева | 15 | Огр-маг | 25 |
Арбалетчик | 5 | Элементаль льда | 15 | Алмазный голем | 25 |
Искусный арбалетчик | 5 | Матрос | 15 | Дендроид-солдат | 26 |
Троглодит | 5 | Головорез | 15 | Горгона | 27 |
Гоблин | 5 | Дух океана | 15 | Могучая горгона | 27 |
Хобгоблин | 5 | Ассида | 15 | Костяной дракон | 28 |
Скелет | 6 | Чародей | 15 | Психический элементаль | 28 |
Скелет-воин | 6 | Элементаль энергии | 16 | Огненная птица | 28 |
Троглодит-охотник | 6 | Сатир | 16 | Дьявол | 29 |
Гнолл | 6 | Жрица морей | 16 | Элементаль магии | 29 |
Гнолл-мародер | 6 | Заклинательница | 16 | Единорог | 30 |
Гог | 7 | Гном | 17 | Зеленый дракон | 30 |
Магог | 7 | Боевой гном | 17 | Красный дракон | 30 |
Ящер | 8 | Джинн | 17 | Никс | 30 |
Гарпия | 8 | Мастер-джинн | 17 | Кавалерист | 31 |
Гарпия-ведьма | 8 | Зомби | 17 | Чемпион | 31 |
Эльф | 9 | Лорд вампиров | 17 | Ангел | 31 |
Благородный эльф | 9 | Могущественный лич | 17 | Архидьявол | 31 |
Орк | 9 | Фангарм | 17 | Призрачный дракон | 31 |
Ящер-воин | 9 | Адская гончая | 18 | Феникс | 31 |
Пират | 9 | Цербер | 18 | Боевой единорог | 32 |
Корсар | 9 | Воздушный элементаль | 18 | Нага | 32 |
Морской волк | 9 | Каменный голем | 19 | Королева наг | 32 |
Снайпер | 9 | Птица рух | 19 | Никс-воин | 33 |
Кентавр | 10 | Птица грома | 19 | Черный рыцарь | 34 |
Каменная горгулья | 10 | Водный элементаль | 19 | Рыцарь смерти | 34 |
Обсидиановая горгулья | 10 | Мумия | 19 | Баллиста | 35 |
Дух | 11 | Кочевник | 19 | Пушка | 35 |
Привидение | 11 | Мечник | 20 | Архангел | 36 |
Вождь орков | 12 | Крестоносец | 20 | Золотой дракон | 36 |
Змий | 12 | Железный голем | 20 | Гигант | 37 |
Ядовитый змий | 12 | Демон | 20 | Титан | 37 |
Копейщик | 12 | Циклоп | 20 | Черный дракон | 37 |
Алебардщик | 12 | Король циклопов | 20 | Чудище | 38 |
Капитан кентавров | 12 | Василиск | 20 | Гидра | 39 |
Наездник на волке | 12 | Виверна | 20 | Морской змей | 40 |
Налетчик | 12 | Виверна-монарх | 20 | Подвода с боеприпасами | 41 |
Вор | 12 | Огненный элементаль | 20 | Палатка первой помощи | 41 |
Бехолдер | 13 | Рогатый демон | 21 | Гидра хаоса | 42 |
Зловещий глаз | 13 | Мантикора | 21 | Сказочный дракон | 42 |
Грифон | 14 | Скорпикора | 21 | Древнее чудище | 43 |
Королевский грифон | 14 | Огр | 21 | Аспид | 43 |
Маг | 14 | Великий василиск | 21 | Ржавый дракон | 44 |
Медуза | 14 | Земляной элементаль | 21 | Лазурный дракон | 45 |
Элементаль шторма | 14 | Элементаль магмы | 21 | Кристаллический дракон | 46 |
Монах | 15 | Тролль | 21 | Катапульта | 47 |
Указанные в таблице приоритеты справедливы в том случае, когда Ваши существа смогут дойти до вражеских за одинаковое количество ходов (не клеток, а именно ходов). При этом ров и стены учитываются, кроме клетки ворот, которая является единственным путем, даже если ворота закрыты.
Далее некоторые нюансы расчета приоритета:
• Не учитывается тип существа (стрелок или воин ближнего боя), но учитывается способность летать. Если одному существу хватит меньшего количества ходов, чем другим, то его приоритет возрастает примерно на 12,5 пунктов.
• Также при выборе цели не имеет значения количество существ в отрядах.
• Если несколько существ имеют одинаковый приоритет, то башни начинают 'отстрел' снизу вверх.
• Также приоритет выстрела смещается на существо с неполным здоровьем, которое может добить выстрел.
Технически Стрелковые башни под управлением компьютера выбирают цель своей атаки по классу вражеских отрядов, который присваивается всем вражеским отрядам в зависимости от их возможности нанести ущерб обороняющимся:
• Класс А - вражеский отряд сможет атаковать в ближайший свой ход. Сюда включаются и стрелки, способные стрелять.
• Класс Б - вражеский отряд сможет атаковать через ход.
• Класс В - вражеский отряд сможет атаковать через 2 хода. И так далее.
При расчетах ИИ считает, что Стрелковые башни наносят 1 урон (это баг), поэтому башни предпочтут атаковать, например, отряд из 1 существа, чем из 10. На выбор цели влияют 2 фактора, рассчитываемые отдельно для каждого класса вражеских отрядов:
Потеря силы войска:
• Для существ класса А: Приоритет = 1 * (AI Value / Зд.) * 100%, где 1 - урон стрелковой башни (баг); AI Value - суммарная ценность целевого отряда; Зд. - суммарное здоровье целевого отряда.
• Для существ класса Б: Приоритет = 1 * (AI Value / Зд.) * 50%, где 50% = 100% / 2.
• Для существ класса В: Приоритет = 1 * (AI Value / Зд.) * 33%, где 33% = 100% / 3. И так далее со снижением знаменателя 100% / n.
Потеря численности войска:
• Для существ класса А: Приоритет = 1 / Зд. * 100%, где 1 - урон стрелковой башни (баг); Зд. - суммарное здоровье целевого отряда.
• Для существ класса Б: Приоритет = 1 / Зд. * 50%, где 50% = 100% / 2.
• Для существ класса В: Приоритет = 1 / Зд. * 33%, где 33% = 100% / 3. И так далее со снижением знаменателя 100% / n.
После расчетов ИИ выбирает цель с наибольшим приоритетом. Если у нескольких отрядов приоритеты одинаковые, то будет выбран тот отряд, который находился в позиции правее к окну героя.
Таким образом, если в армии имеются незадействованные слоты, то можно применить одну уловку, позволяющую если не избежать, то по крайней мере существенно снизить потери стрелковых отрядов. Для этого необходимо выставить до начала сражения в крайние правые слоты (на поле боя они будут нижними) всего по одному стрелку. В первом раунде боя потеряем только 3 существа, в силу того, что Стрелковые башни начинают атаку стрелков снизу вверх. Также сохранить стрелковые отряды помогает выдвижение вперед (предположительно на дистанцию менее 10 клеток от центральной Стрелковой башни) крупного пехотного отряда существ 1 уровня, например Кентавров. Также отвлечение срабатывает при выдвижении летающих отрядов.
Также при обороне города, ИИ считает свои Стрелковые башни стрелковыми отрядами (что логично) и постарается не выходить за стены, если у Вас нет особых стрелковых и летающих отрядов.
Иногда существа под управлением ИИ неадекватно оценивают ситуацию. Так например дракон в Черной башне может ударить не ударный стэк из 100 Скелетов, а одного отдельно стоящего Скелета. Подобный баг приоритетов встречается не только в случае с Черной башней и не только со Скелетами, но никакой точной закономерности в подобных 'ошибках' пока не выявлено.
Движение существ по полю боя под управлением ИИ обусловлено рядом алгоритмов. Часть из них рассмотрена в статье 'Поведение ИИ в бою'. Здесь мы рассмотрим случай, когда ИИ принимает решение атаковать существо и вопрос состоит только в том, с какого гекса нанести атаку. В расчет не принимаются условия 'блока' стрелков и опасности ударов со стороны других существ.
Первое, чем руководствуется ИИ - количество клеток, которое ему нужно пройти до цели. Если существо-цель находится в радиусе атаки ИИ, он предпочтет атаковать его, переместившись на минимальное количество гексов. Однако, что происходит, когда ИИ может ударить с разных сторон пройдя одинаковое количество гексов? Здесь в ИИ заложена схема, определяющая приоритет гексов, с которых можно нанести атаку. Чем выше показатель, тем выше приоритет.
В случае двухгексовых юнитов, которые являются целью атаки, приоритет клеток зависит от стороны нападающего (кто навязал бой, а кто обороняется - это влияет на разворот существ на поле боя).
Также встает вопрос о том, по какому маршруту пойдет существо под управлением ИИ. Это очень полезно учитывать при использовании таких заклинаний как Минное поле или Стена огня.
• Когда ближайшая клетка для атаки одна и находится на прямой линии (не нужно совершать поворотов), ИИ идет по прямой.
• Если существо идет вниз-влево, то оно старается сначала идти по диагонали, остаток по горизонтали.
• Если существо идет вверх-влево, то оно идет сперва по прямой, остаток по диагонали.
• Если существо идет вниз-вправо, то оно сначала идет по горизонтали, и остаток по прямой вниз.
• Если существо идет вверх-вправо, то оно сначала идет по прямой вверх, и остаток по горизонтали.
• Если двигаться нужно вверх или вниз, то существо сначала продвинется вверх-направо / вниз-направо, а остаток вверх-налево / вниз-налево.
В игре есть несколько типов сражений:
• Сражения с нейтральными существами;
• Сражения с вражескими героями;
• Захват сокровищниц;
• Захват жилищ существ, шахт и других внешних объектов;
• Осада вражеского города (или оборона своего).
Любое поле битвы имеет размер 15 х 11 гексов. Сражения с нейтральными существами, с героями противника или захват объектов с охраной проходят на стандартном поле боя, когда войска атакующего располагаются слева, а защищающегося – справа. Расположение по гексам зависит от количества отрядов в армии и от выбранной Группировки:
Из таблицы видно, что при наличии в армии одного, шести или семи отрядов расстановка существ не зависит от выбранной Группировки.
Сосредоточенное боевое соединение бывает полезно, например, в том случае, если ваша пехота не успевает обступить стрелков перед ударом вражеской армии на первом ходу из-за низкой скорости. Оставив в армии пять отрядов перед боем со стрелками в позиции 3, и выбрав Сосредоточенное соединение, получаем стрелков, зажатых 2-ым и 4-ым отрядами, доступных для атаки лишь с одной клетки.
На стандартном поле боя случайным образом могут быть сгенерированы различные Препятствия. Они могут быть двух типов: статичные и удаляемые. Статичные (Большие озера, Трещины и т.д.) нельзя убрать заклинанием Устранение преград, в отличие об удаляемых (Бревна, Камни, Пни и т.д.).
Посчитано, что в игре существует 393984 уникальных боевых полей, образованных сочетанием типа земли и случайных препятствий.
Поле боя формируется на основе клетки карты приключений, на которой стоит атакуемый отряд нейтралов, вражеский герой или где находится клетка входа в охраняемый объект. Вид препятствий основывается на типе земли (Песок, Трава, Грязь и другие, в т.ч. накладные ландшафты, битва на пришвартованном корабле и при абордаже) и координатах этой клетки X-Y-Z (горизонталь - вертикаль - уровень карты), т.е. на любой карте на одинаковых координатах при одинаковом типе земли будет одно и то же поле боя с идентичными препятствиями.
Из всех уникальных боевых полей существует достаточно много комбинаций, и некоторые из них могут серьезно ломать баланс игры. Например, на некоторых полях сражений существуют клетки, абсолютно недоступные для атаки в ближнем бою, но туда можно поместить летающее существо или любое другое при помощи Телепорта (см. рис. 1). Второй пример (рис. 2) - это 'закутки', в которые не могут попасть двухгексовые существа, однако одногексовые без проблем заходят туда. Помимо этих двух примеров существует масса комбинаций препятствий, при которых на поле боя существуют клетки, доступные для атаки лишь с одной или двух сторон, но они не так сильно ломают баланс, а лишь немного помогают игроку в бою при должной сноровке.
Рис. 1 Клетка поля боя, которая недоступна для атаки никаким существом ближнего боя, т.е. туда можно телепортировать любого стрелка, Гарпию-ведьму или Архидьявола, которые бьют без ответа, и безнаказанно победить любую армию, где нет вражеских стрелков или ударной магии.
Рис. 2 'Закуток', в который может попасть одногексовое существо и стать недоступным для атак двухгексовых противников, бьющих врукопашную.
При нападении на отряд нейтралов на карте, действие переносится на поле боя, в котором с левой стороны будут располагаться отряды игрока, а справа – отряды атакованных существ. При этом нейтралы могут быть разделены на отряды от 1 до 7 в равных количествах. Если количество существ не кратно количеству отрядов, то остаток от деления по 1 распределится на отряды, которые находятся выше.
Распределение нейтральных существ по отрядам в бою подчиняется своим строгим законам и зависит от значения k, равного отношению силы армии атакующего героя A и силы армии нейтралов H. Сила армии считается по сумме AI_Value (ценности) всех существ, входящих в нее. Итоговое количество отрядов определяется по таблице:
Отношение | Кол-во отрядов |
---|---|
< 0.5 | 7 отрядов |
0.5 - 0.66 | 6 отрядов |
0.67 - 0.99 | 5 отрядов |
1 - 1.49 | 4 отряда |
1.5 - 1.99 | 3 отряда |
2 - 2.99 | 2 отряда |
С вероятностью 40% к количеству отрядов, полученному по таблице, добавится еще один или один отнимется (предположительно зависит от координаты отряда на карте приключений). Понятно, что количество отрядов не может быть больше 7 и менее 1.
Если отряд нейтралов не улучшенный и если получилось более одного отряда, то с вероятностью 50% один из этих отрядов станет улучшенным.
При захвате Пирамиды, Алмазные големы всегда делятся на 2 отряда, а Золотые - на несколько (определяется по таблице и отнимается 2).
1. Откупиться. Герой бежит с поля боя и будет доступен для найма в Таверне с оставшейся армией, запасом хода, маной, артефактами и боевыми машинами. Нельзя откупиться при битве с нейтралами или при обороне города, а также при наличии у любого из героев в бою Оков войны.
По умолчанию, стоимость откупа равна 50% стоимости всех существ в армии героя, без учета стоимости ресурсов, если таковые использовались для покупки существ, с округлением вниз. При этом убитые существа, Боевые машины, вызванные Элементали, Клоны и существа, воскрешенные без Продвинутой Магии земли, не включаются в общую стоимость армии, а поднятые Демоны и Фангармы включаются.
Если у героя остались только воскрешенные войска без Продвинутой Магии земли, то стоимость откупа будет равна 0.
На стоимость откупа влияет навык Дипломатии и артефакты, усиливающие этот навык, у откупающегося героя. Навык Дипломатия снижает стоимость откупа на 20% (относительных, а не абсолютных) за каждый уровень его развития. Наличие Ленты посла, Кольца дипломата и/или Медали дипломата снижает стоимость откупа на 10% за каждый артефакт. Из-за внутренних округлений программы, любое снижение стоимости откупа (от артефактов или от навыка) дополнительно снижает откуп на 1 ед. золота. Например, откупиться с 10 Архангелами стоит 25000 золотых (50% от 10 * 5000), а при наличии Базовой Дипломатии – 19999 (80% от 25000 и -1).
Наличие Мантии дипломата помимо прочего позволяет герою откупаться в битвах против нейтралов и при осаде / обороне города.
Герой не получает Опыт за существ, которых победил в бою, если после сбежал.
Можно откупиться на этапе Тактической расстановки войск или на ходе управляемых Боевых машин (в т.ч. Стрелковых башен). ИИ не может откупаться на фазе Тактики, но также может откупиться на ходе Боевых машин, даже если не имеет соответствующих навыков для управления ими.
С включенной опцией «Турнирные правила» кнопка Откупиться становится недоступна, если герой использовал заклинание в первом раунде боя.
Откупиться можно даже при отсутствии у игрока городов, но не при отсутствии золота. При этом, если откупается последний герой, то игрок проигрывает.2. Сбежать. Герой бежит с поля боя и будет доступен с артефактами и боевыми машинами в Таверне и с 1 существом из первого отряда его стартовой армии, т.е. оставшаяся армия не сохраняется. Нельзя сбежать с поля боя при обороне города и при наличии Оков войны у одного из героев.
Наличие Мантии дипломата позволяет герою сбегать с поля боя в битвах против нейтралов и при осаде / обороне города.
Как и в случае с откупом, герой не получает Опыт за убитых существ, если сбегает.
Можно сбежать на этапе Тактической расстановки. ИИ этого делать не может, но он может сбежать на ходе Баллисты, Катапульты и Палатки первой помощи, даже если не имеет навыки Артиллерия, Баллистика и Первая помощь соответственно.
С включенной опцией «Турнирные правила» кнопка Сбежать недоступна, если герой использовал заклинание в первом раунде боя.Сбежать можно даже при отсутствии у игрока городов. При этом, если сбежит последний герой, то игрок проигрывает.
3. Воспользоваться Книгой магии. Герой может использовать только 1 заклинание в каждом раунде боя и только во время хода одного из существ в своей армии.
1. Переместиться. Существо может переместиться на любой свободный гекс поля боя (или 2 смежных гекса для двухгексовых существ) в пределах радиуса своего хода, определяемого Скоростью. После перемещения ход завершается, однако перемещение пешего существа может быть прервано Зыбучими песками или смертью от Мины.
2. Переместиться и атаковать вражеское существо с выбранного свободного гекса рядом с ним, предварительно переместившись на этот гекс в пределах радиуса своего хода. После перемещения, атаки и получения ответного удара (если есть), ход завершается.
3. Атаковать с места стоящее рядом существо. После атаки и получения ответного удара (если есть) ход завершается.
4. Использовать активируемую способность. Некоторые существа могут использовать способность вместо своего хода:
• Архангел – Воскрешение при наведении на дружественный отряд, в котором убито хотя бы 1 существо;
• Мастер-джинн – Случайное заклинание при наведении на дружественный отряд;
• Адское отродье – Поднятие Демонов при наведении на труп дружественного отряда;
• Огр-маг – Жажда крови при наведении на дружественный отряд;
• Штормовой / Ледяной / Энергетический / Магмовый элементаль – Защита от воздуха / воды / огня / земли соответственно при наведении на дружественный отряд;
• Сказочный дракон – Атака случайной магией при наведении на вражеский отряд или по нажатию клавиши G;
• Лепрекон – Удача при наведении на дружественный отряд;
• Сатир – Радость при наведении на дружественный отряд. Сюда же можно отнести способности Магогов и Личей, которые могут атаковать по площади.5. Подождать. Существо пропускает ход и использует его в этом же раунде в фазе ожидания (см. ниже Порядок ходов).
6. Защититься (защитная стойка). Существо пропускает ход в этом раунде, а его Защита повышается на 20% (итоговое значение округляется вниз), но не менее, чем на 1 ед. до следующего своего хода. У Боевых машин Защита не повышается.Если отряд встал в Защиту, ее действие закончится тогда, когда к отряду придет очередной ход в следующем раунде (т.е. существо может выдержать большое количество ударов, пока действие защиты активно).
Если существо Ослеплено, Парализовано или превращено в Камень, то защитная стойка прекратит свое действие ко времени следующего хода существа, даже если оно все еще не может двигаться.7. Использовать альтернативное действие. Некоторые существа в определенной ситуации способны сделать несколько действий одновременно с одной и той же целью. В HotA для них предусмотрена возможность переключения между такими действиями при помощи специальной кнопки или по клавише Alt:
• Стреляющие существа могут атаковать врукопашную вместо стрельбы;
• Гарпии могут переместиться и атаковать без возврата на исходную позицию;
• Сказочные драконы могут атаковать врукопашную вместо использования случайной магии;
• Архангелы и Адские отродья могут перемещаться на труп дружественного существа вместо Воскрешения / Поднятия демонов;
• Личи, Могущественные личи и Магоги могут использовать Прицельный выстрел - выстрел Облаком по любой клетке поля боя вместо стрельбы по существу, даже если выстрел никого не заденет.
Наблюдения показывают, что ИИ недооценивает (или же не оценивает вообще) возможность его противника использовать Прицельный выстрел Магогов и Личей по пустой клетке, хотя сам умеет его использовать. Он старается расставлять существ на поле боя дальше одной клетки друг от друга, чтобы нельзя было сделать Прицельный выстрел по нескольким целям, т.е. он корректно учитывает, что Огненный шар или Облако смерти, выпущенные по одному из его существ, заденут и другое.
Сокровищницы – особый тип объектов, в которых герою предстоит вступить в бой с охраной, чтобы получить награду. Расстановка при захвате сокровищниц отличается от стандартной - армии героя приходится занимать круговую оборону. Посмотреть расстановку отрядов в каждом типе сокровищниц можно на странице Объектов, кликнув по ним. При посещении охраняемого объекта игроку покажет примерное количество войск, с которым ему предстоит сразиться, после чего он вправе согласиться на бой или отказаться. После посещения при наведении на сокровищницу курсора, также покажется оставшаяся охрана. Выбранная Группировка не влияет на расстановку существ в сокровищнице.
В сокровищницах не работает навык Тактика, а Боевые машины не участвуют в битве, однако, если у героя есть Подвода с боеприпасами, то его стрелки все равно будут иметь бесконечный боезапас.
Если охрана сокровищницы состоит из неулучшенных отрядов, то с вероятностью 50% один отряд заменится улучшенным (Исключения – Покинутый корабль, Кораблекрушение, Погост и Пиратская пещера).
Сокровищницы могут иметь различные вариации своей охраны, которая генерируется в начале игры. Каждому виду охраны соответствует своя награда в случае победы. Все это также описано на странице Объектов.
При осаде города с построенным Фортом, Цитаделью или Замком, бой проходит на поле боя осады, на родном для этого города типе земли. Расстановка существ стандартная, как и при битве вне города.
На поле боя не могут появиться случайные препятствия, но присутствуют Стены, Стрелковые башни, Ворота и Ров. Ров Крепости имеет увеличенную ширину в 2 гекса.
Войска обороняющегося героя располагаются за крепостными стенами, которые нападающий герой стремится разрушить. Через проломы в стенах могут проходить войска, а стреляющие существа теряют штраф стрельбы через бреши. Подробнее о штурме городов можно прочитать в этой статье.
При обороне города в битве не участвует Баллиста или Пушка защищающегося героя. Навык Артиллерии при осаде, позволяет управлять огнем Стрелковых башен.
Любая битва делится на раунды, а раунды – на ходы отдельных отрядов существ и боевых машин.
Количество раундов в битве программно ограничено значением 2 ^ 32, т.е. в начале 2 ^ 32 - 1 раунда все отряды на поле боя погибнут, включая призванных существ. Именно поэтому битва двух Привидений не может длиться бесконечно и в режиме Быстрой битвы завершается поражением нападающего героя. В реальной же битве это количество раундов практически недостижимо. Даже, если проводить раунд за 1 секунду, то длительность битвы растянется на целых 136 лет.
В HotA на случайных картах мультиплеера длительность любой битвы ограничена 100 раундами. Любая битва с участием игрока, длящаяся больше 100 раундов, будет принудительно завершена. Атакующему игроку будет предложено доиграть Быстрой битвой (только против ИИ), Откупиться или Сбежать. Доступность побега и откупа определяется по обычным правилам (но игнорируются Оковы войны).
В каждом раунде имеется своя последовательность ходов и действий эффектов:
• Тактическая фаза расстановки отрядов (только перед первым раундом). Если навык Тактики имеется у обоих сражающихся героев, то они подавляют друг друга в соответствии с уровнем развития. Подробнее об этом можно прочитать в статье Вторичные навыки.
• Действие Яда – анимация и снижение Здоровья отравленных существ на 10%.
• Ход Стрелковых башен при осаде города: центральная – верхняя – нижняя.
• Ход Катапульты. Не учитывается как ход существа нападающего игрока, даже если она управляется за счет навыка Баллистика. Также ход Катапульты (даже если она пропускает ход или ждет) сбрасывает очередность ходов на стадию первого хода в битве, т.е. при равенстве Скоростей существ разных игроков преимущество будет всегда у нападающего (баг).
Основная фаза хода отрядов существ.
Порядок хода отрядов определяется их текущей Скоростью – более быстрые отряды ходят раньше:
• Если в начале боя или в начале нового раунда при осаде у нескольких отрядов с разных сторон одинаковая скорость, то приоритет получает нападающий игрок.
• Если у нескольких отрядов с разных сторон одинаковая скорость, то право хода получает та сторона, чей отряд не ходил только что (т.е. последним в предыдущем раунде) - так называемое Правило преимущества того, кто не ходил только что.
• Если у нескольких отрядов одной стороны одинаковая скорость, то право хода получает отряд, находившийся в самой верхней позиции на старте боя (Правило левого слота). Вызванные отряды считаются так, как если бы они находились в восьмом, девятом и т.д. слотах героя, в порядке появления.
• Ход Боевых машин: Баллиста или Пушка, затем Палатка первой помощи. Если у обеих сторон есть одинаковые боевые машины (Баллиста и Пушка считаются одинаковыми, т.к. занимают один и тот же слот), то очередность их ходов подчиняется Правилу преимущества того, кто не ходил только что.
• Ход Стрелковых башен, ждавших в свой ход: центральная – верхняя – нижняя.
• Ход Боевых машин, ждавших в свой ход: Катапульта – Баллиста или Пушка – Палатка первой помощи.
Фаза хода отрядов, у которых сработал положительный Боевой дух, и ждавших после этого.
Порядок хода отрядов определяется очередностью срабатывания Боевого духа – те, кто получил дополнительный ход и ждал раньше, ходят в последующем первее.
Фаза хода отрядов, ждавших в свой ход.
Порядок хода отрядов обратный и определяется их текущей Скоростью – более медленные отряды получают право хода первее. Очередность ходов подчиняется Правилу левого слота и Правилу преимущества того, кто не ходил только что.
Прочие особенности:
• Если отряд пропустил ход из-за действия Страха или отрицательного Боевого духа, то он не может больше получить ход в этом раунде, даже если будет убит и после воскрешен.
• Если с отряда, не ходившего в этом раунде, снимается (любым способом) Слепота, Окаменение или Паралич, либо отряд воскрешается, то он получит право хода в соответствии со своей скоростью и фазой (в которой он был ослеплен, окаменен, парализован или убит). Действует Правило левого слота и Правило преимущества того, кто не ходил только что.
• На Клона действует Правило преимущества того, кто не ходил только что, но не действует Правило левого слота – т.е. если у нескольких отрядов одинаковая скорость, и Клон является копией любого из их, он будет ходить после того, как походят все эти отряды.
• Если какой-либо герой имеет Альянс ангелов или Железный кулак огра, то их автоматические заклинания будут наложены перед первым ходом дружественного существа (Доспехи проклятого являются исключением, они срабатывают в начале боя), Боевой машины или Стрелковой башни.
• При осаде города имеется несколько путей получения права первого хода. У обороняющегося героя имеются Стрелковые башни, а у атакующего – Катапульта. В этой ситуации право первого хода зависит именно от умения контроля этими объектами. Если обороняющийся герой имеет навык Артиллерии, то он может контролировать выстрелы Стрелковых башен и гарантировано получает право первого хода при осаде. Однако, если у него нет Артиллерии, то первый ход определяется скоростью существ. Перехватить инициативу может осаждающий герой. Если он имеет Баллистику, то он может контролировать выстрелы Катапульты и получает право первого хода при осаде (если у обороняющегося нет Артиллерии, то Стрелковые башни сделают свои выстрелы автоматически). Первый ход дает право первым применить заклинание, что порой имеет решающее значение.
В игре существует ограничение на количество объектов, которые могут принимать участие в бою, причем выведенные из боя объекты (погибшие существа, оставляющие труп), а также призванные Демоны, Клоны и Элементали также учитываются. Когда счетчик объектов достигает своего максимума (это 20 объектов для каждой из сторон) – никакого другого объекта на поле боя появиться не может – нельзя поднять Демонов, призвать Элементалей или сотворить Клон. Боевые машины также являются объектами и подлежат учету. Из этого получаем полезный для игроков вывод – если думаете, что битва сведется к массовому призыву элементалей (такое случается), учтите, что каждый призванный слот Демонов и каждый изначально занятый слот отнимает у вас один отряд элементалей. Плюс еще одна причина не тащить в бой ненужную Палатку первой помощи или Подводу с боеприпасами.
Клоны, уничтоженные в процессе битвы, не оставляют трупов и не учитываются как объекты на поле боя. Однако Клоны, исчезающие в связи с окончанием длительности (зависящей от Силы магии), подлежат учету (баг).
Призванные элементали, уничтоженные в процессе битвы, также не оставляют трупов и не учитываются как объекты на поле боя. Однако при достижении максимума в 20 объектов при помощи вызова элементалей, дальнейшее их уничтожение не сбрасывает счетчик и не дает вызывать элементалей еще. Причем игра отображает сообщение о том, что нельзя вызвать элементалей другого типа вместо сообщения об ограничении в 20 объектов (баг). Т.е. при достижении максимума однажды, счетчик больше не сбрасывается в этом бою.