Главная Существа Артефакты Герои Заклинания
?
Все статьи в этом разделе распложены блоками один под другим. Чтобы не заблудиться в них, на странице предусмотрена навигация. Чтобы открыть список статей, нажмите на кнопку со свитком в левой части экрана.

Изначально в оглавлении отображаются только названия глав, но можно включить и подзаголовки, чтобы точнее переходить в интересующий раздел. Выставляя или убирая галочки внизу списка статей, Вы можете убрать со страницы ненужный контент. Чтобы убрать все галочки, нажмите Del, чтобы вернуть все в изначальное состояние, нажмите Ctrl + Del.

При желании можно изменить размер текста статей или цветовую схему на темную, используя переключатели в верхней части экрана.

В тексте статей содержатся таблицы, которые изначально скрыты для экономии места, чтобы их развернуть, нажмите на них с зажатой клавишей Ctrl.
Иконка
Иконка Список статей / Фильтры
Иконка Иконка

Источник

Большая часть информации для данного раздела взята из справочника 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 N = 7 N = 8 N = 9 N = 10 N = 11 N = 12 N = 13
0 0.83 1.53 2.11 2.59 2.99 3.33 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 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
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 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
Волшебное зеркало 12 18 24
Ледяная молния, Инферно, Волна смерти 20 20 20
Щит 10 20 20
Антимагия 10 15 20
Телепорт 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 Скелетов, а одного отдельно стоящего Скелета. Подобный баг приоритетов встречается не только в случае с Черной башней и не только со Скелетами, но никакой точной закономерности в подобных "ошибках" пока не выявлено.

Движение по полю боя

Движение существ по полю боя под управлением ИИ обусловлено рядом алгоритмов. Часть из них рассмотрена в статье "Поведение ИИ в бою". Здесь мы рассмотрим случай, когда ИИ принимает решение атаковать существо и вопрос состоит только в том, с какого гекса нанести атаку. В расчет не принимаются условия "блока" стрелков и опасности ударов со стороны других существ.

Первое, чем руководствуется ИИ - количество клеток, которое ему нужно пройти до цели. Если существо-цель находится в радиусе атаки ИИ, он предпочтет атаковать его, переместившись на минимальное количество гексов. Однако, что происходит, когда ИИ может ударить с разных сторон пройдя одинаковое количество гексов? Здесь в ИИ заложена схема, определяющая приоритет гексов, с которых можно нанести атаку. Чем выше показатель, тем выше приоритет.

В случае двухгексовых юнитов, которые являются целью атаки, приоритет клеток зависит от стороны нападающего (кто навязал бой, а кто обороняется - это влияет на разворот существ на поле боя).

Приоритеты атаки
Передвижение ИИ

Также встает вопрос о том, по какому маршруту пойдет существо под управлением ИИ. Это очень полезно учитывать при использовании таких заклинаний как Минное поле или Стена огня.

• Когда ближайшая клетка для атаки одна и находится на прямой линии (не нужно совершать поворотов), ИИ идет по прямой.
• Если существо идёт вниз-влево, то оно старается сначала идти по диагонали, остаток по горизонтали.
• Если существо идёт вверх-влево, то оно идёт сперва по прямой, остаток по диагонали.
• Если существо идет вниз-вправо, то оно сначало идет по горизонтали, и остаток по прямой вниз.
• Если существо идет вверх-вправо, то оно сначало идет по прямой вверх, и остаток по горизонтали.
• Если двигаться нужно вверх или вниз, то существо сначала продвинется вверх-направо / вниз-направо, а остаток вверх-налево / вниз-налево.