Расчет боя для пошаговой стратегии на примере Heroes of Might and Magic


При ударе атакующего война(стека) по атакуемому войну(стеку) происходит процесс вычисления урона. Ниже приведены формулы и правила, по которым происходит вычисление урона.

Используемые термины.

Общие:
Damage = урон.
Creature = создание.
Creature's stack = cтек созданий (стек).
HP = "очки здоровья" (HP).

Параметры создания, отображаемые на экране статистики:
Attack = "атака" создания ("атака").
Defense = "защита" создания ("защита").
Damage = параметр "урон" создания.
MinDamage, MaxDamage = "мин. урон" и "макс. урон".

Параметры героя, отображаемые на экране статистики:
Attack = "атака" героя.
Defense = "защита героя.

Точная формула расчета урона.
Ниже приведена точная формула для расчета урона:

TotalDamage = PhysicalDamage + ElementalDamage.

PhysicalDamage = NumCreatures * BaseDamage * AttackDefenseModifier * PhysicalModifiers

, где TotalDamage - общий урон стека;
PhysicalDamage - "физический урон" стека (основной урон);
ElementalDamage - дополнительный "элементальный урон" стека;
NumCreatures - кол-во созданий в атакующем стеке;
BaseDamage - "базовый" урон создания атакующего стека;
AttackDefenseModifier - модификатор урона от "атаки" и "защиты";
PhysicalModifiers - произведение всех "прочих" модификаторов "физического урона".

Подробно о компонентах формулы.

PhysicalDamage
Основной урон, наносимый атакующим стеком.

Зависит от множества параметров (см. описания ниже).
После всех расчетов "физический урон" округляется вниз до целого числа.
Исключение - если "физический урон" получился <1, то он становится =1.

NumCreatures
Кол-во созданий в атакующем стеке.

BaseDamage
"Базовый" урон создания атакующего стека.
Формула:
BaseDamage = "мин урон" + random*("макс урон"-"мин урон"),

, где random - вещественное случайное число от 0 до 1;
"мин. урон" и "макс. урон" - характеристики создания: минимальный и максимальный базовый урон.

Характеристики "мин урон" и "макс урон" создания могут меняться из-за влияния разных составляющих игры: абилок героя (пример - Frenzy), артефактов (пример - Necklace of the Bloody Claw), заклинаний (пример - Berserk) и прочих. Итоговые значения характеристик отображаются на экране статистики создания - именно они и подставляются в формулу расчета BaseDamage.

AttackDefenseModifier
Модификатор урона от характеристики "атака" атакующего стека и характеристики "защита" атакуемого стека.

Формула состоит из 2-х частей:
Если "атака" атакующего >= "защиты" атакуемого, то
AttackDefenseModifier = 1+("атака"-"защита")*0,05.
Если "атака" атакующего < "защиты" атакуемого, то
AttackDefenseModifier = 1/(1+("защита"-"атака")*0,05).

Нет никаких ограничений на значение разницы "атаки" и "защиты". (Подобное ограничение было в игре на ранних стадиях разработки - модификатор ограничивался диапазоном [0.1; 3.0]).

Характеристики "атака" и "защита" создания могут меняться из-за влияния разных составляющих игры: характеристик героя "атака" и "защита", специализаций героя, абилок созданий (примеры - Rider's Charge и  Precise Shot) и прочих.

Существуют два вида модификаторов: "плюсуемые" (пример - "атака" и "защита" героя) и "умножаемые" (примеры - команда Defend, абилка арбалетчиков Precise Shot). Порядок применения модификаторов: сначала "плюсуемые", затем "умножаемые".
После всех вычислений характеристики "атака" и "защита" округляются вниз до целого.
В формулу расчета AttackDefenseModifier подставляются полученные характеристики "атака" и "защита".

PhysicalModifiers
Произведение всех модификаторов "физического урона".
Формула:
PhysicalModifiers = PhysicalModifier1 * PhysicalModifier2*...* PhysicalModifierN

, где PhysicalModifier1...PhysicalModifierN - мультипликативные модификаторы "физического урона".

Модификаторами "физического урона" (далее - "модификаторы урона") являются разнообразные модификаторы от скиллов/абилок героя, абилок созданий, артефактов и прочего, влияющего в процентном отношении на наносимый физический урон. Примеры: скиллы героя Attack и Defense, абилки Archery и Evasion.

ElementalDamage
"Элементальный урон" стека (дополнительный урон).
Формула:
ElementalDamage = AdditionalElementalDamage1 + AdditionalElementalDamage2 + ... + AdditionalElementalDamageN

, где AdditionalElementalDamage1 ... AdditionalElementalDamageN- составляющие общего элементального урона от разнообразных игровых механик.

"Элементальный урон" наносится дополнительно к "физическому урону". Он зависит от разнообразных скиллов/абилок героя и способностей существ.

В некоторых случаях урон от составляющей "элементального урона" может быть равен определенному проценту от "физического урона" (пример - абилка героя Cold Steel).
В других случаях - никак не зависит от "физического урона" (пример - абилка Inferno-героя Hellfire).

Значение урона от отдельной составляющей (AdditionalElementalDamage) может уменьшаться, если у атакуемого стека есть защита/иммунитет от "элемента" этой составляющей (Вода/Огонь/Воздух/Земля).

Полный список составляющих "элементального урона" приведен в соответствующем разделе.

Упрощенная общая формула расчета урона.

В формуле отсутствуют некоторые детали, зато она более наглядна и удобна.

Если "атака" атакующего стека > "защиты" атакуемого, то:
"Итоговый урон" = "Базовый урон 1 создания" * "Кол-во созданий в стеке" * (1+("атака"-"защита")*0,05) * "Остальные модификаторы урона"

Если "атака" атакующего стека < "защиты" атакуемого, то:
"Итоговый урон" = "Базовый урон 1 создания" * "Кол-во созданий в стеке" / (1+("защита"-"атака")*0,05) * "Остальные модификаторы урона"

, где "Базовый урон 1 создания" - случайное число в диапазоне ["мин урон"; "макс урон"];
"Остальные модификаторы урона" - произведение всех модификаторов урона от скиллов, абилок героя,  абилок созданий и т.д.

Особенности расчета урона для дистанционных (Ranged) атак.

Для стеков с ranged-атакой (с абилкой Shooter) есть несколько общих модификаторов урона:
1) Если атакуемый стек находится в пределах 6 клеток, то модификатор урона будет 1,0 (т.е. никаких бонусов к урону).
2) Если атакуемый стек находится дальше, чем 6 клеток, то модификатор урона будет 0,5 (-50% урон).
3) При проведении melee-атаки стек с абилкой Shooter будет иметь модификатор урона 0,5 (-50% урон).

Стеки из армии защищающего героя, находящие внутри замка, имеют модификатор урона = 0,5 (-50%) для урона, наносимого вражескими ranged-атаками (при условии, что на линии стрельбы не разрушены стены или ворота и вражеский стек находится снаружи замка).

Расстояние от стрелка до цели считается точно таким же образом, как для передвижения стеков по полю боя (1 - для перемещения по вертикали/горизонтали, 1.5 - по диагонали).

Skills героя.

Attack.
Уровень Basic/Advanced/Expert дает модификатор урона = 1.05 / 1.1 / 1.15 (+5%/10%/15% урона) для melee-атак всех стеков армии героя.

Defense.
Уровень Basic/Advanced/Expert дает модификатор урона = 0.9 / 0.8 / 0.7 (-10%/20%/30% урона) при получении повреждений от melee-атак всеми стеками армии героя.

Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемыми ниже кнопками:

Блог: http://romanlovetext.blogspot.com/

Ссылка не в тему:
https://sites.google.com/site/heroes3hd/rus/description