Алгоритмы
Добавлено: 29 апр 2013, 13:06
Вычисление физического урона.
1. Определяется базовый урон D_BAS как случайное значение из диапазона от <количество юнитов в стеке * минимальный урон> до <количество юнитов в стеке * максимальный урон>.
2. Определяется модификатор урона MD_BAS, учитывающий разницу между атакой нападающего и защитой цели. На этом этапе применяются все модификаторы атаки (атака в окружении и пр.) и защиты (снижение защиты цели при атаке Бегемотов, свойство Ётунов и комплекта Титана, состояние обороны и пр.).
- Если атака больше защиты, то урон увеличивается на 5% за каждую единицу разности, но не более, чем на 400%.
- Если атака меньше защиты, то урон снижается на 2.5% за каждую единицу разности, но не более, чем до 80%.
3. Определяется модификатор M_OFF вторичных навыков у героя, владеющего атакующим отрядом, повышающих урон. Для контактной атаки это - "Нападение", для стрелковой - "Стрельба". Степень увеличение зависит от уровня владения навыком:
M_OFF = D_BAS * PCT / 100.
4. Определяется модификатор M_DEF снижения урона, зависящий от навыка "Доспехи" у героя, владеющего защищающимся отрядом. Степень снижения зависит от уровня владения навыком:
M_DEF = PCT / 100.
5. Учитывается модификатор сработавшего навыка "Удача" M_LUCK.
- В случае выпадения положительной удачи M_LUCK = 1.5
- Для отрицательной удачи M_LUCK = 0.75
- При отсутствии Удачи M_LUCK = 1.0
6. Определяется промежуточный базовый урон
D = ( D_BAS + MD_BAS + M_OFF ) * M_LUCK * ( 1.0 - M_DEF )
7. Учитываются сумма модификаторов, увеличивающих урон (контактный или стрелковый) атакующего отряда (звания, заклинания, свойства артефактов и юнитов)
D = D + D * I_DMG / 100.
8. Учитываются сумма модификаторов, снижающих получаемый урон (контактный или стрелковый) защищающимся отрядом (звания, заклинания, свойства артефактов и юнитов)
D = D - D * R_DMG / 100.
R_DMG не может быть выше 90%.
9. Учитывается пенальти за стрельбу на дальнюю дистанцию ( 0.5 ) и сумма модификаторов, увеличивающие урон. Например, "Удар двойной силы" Рыцарей Сметри, "Атака в окружении" у Ётуновых Питомцев.
D = D * ( 1.0 - PENALTY ) * COEFF.
10. Учитывается влияние боевых медалей в достижениях героя, владеющего нападающим отрядом.
11. Учитывается возможная "Ненависть" нападающего к защитнику.
12. Учитывается свойство "Гнев".
13. Учитывается час Силы / час Слабости от Астрологов.
14. Учитываются свойство "Кавалерийский бонус" у нападающего (увеличение урона за каждую пройденную клетку).
15. Учитывается свойство "Глухая оборона" у защитника (снижение урона за каждую пройденную нападающим клетку). Например, от комплекта Ветерана.
16. Учитывается свойство "Уклонение от урона" у защитника (вероятностное снижение урона). Например, у Утонувших.
17. Результирующий урон не может быть меньше 1.
1. Определяется базовый урон D_BAS как случайное значение из диапазона от <количество юнитов в стеке * минимальный урон> до <количество юнитов в стеке * максимальный урон>.
2. Определяется модификатор урона MD_BAS, учитывающий разницу между атакой нападающего и защитой цели. На этом этапе применяются все модификаторы атаки (атака в окружении и пр.) и защиты (снижение защиты цели при атаке Бегемотов, свойство Ётунов и комплекта Титана, состояние обороны и пр.).
- Если атака больше защиты, то урон увеличивается на 5% за каждую единицу разности, но не более, чем на 400%.
- Если атака меньше защиты, то урон снижается на 2.5% за каждую единицу разности, но не более, чем до 80%.
3. Определяется модификатор M_OFF вторичных навыков у героя, владеющего атакующим отрядом, повышающих урон. Для контактной атаки это - "Нападение", для стрелковой - "Стрельба". Степень увеличение зависит от уровня владения навыком:
M_OFF = D_BAS * PCT / 100.
4. Определяется модификатор M_DEF снижения урона, зависящий от навыка "Доспехи" у героя, владеющего защищающимся отрядом. Степень снижения зависит от уровня владения навыком:
M_DEF = PCT / 100.
5. Учитывается модификатор сработавшего навыка "Удача" M_LUCK.
- В случае выпадения положительной удачи M_LUCK = 1.5
- Для отрицательной удачи M_LUCK = 0.75
- При отсутствии Удачи M_LUCK = 1.0
6. Определяется промежуточный базовый урон
D = ( D_BAS + MD_BAS + M_OFF ) * M_LUCK * ( 1.0 - M_DEF )
7. Учитываются сумма модификаторов, увеличивающих урон (контактный или стрелковый) атакующего отряда (звания, заклинания, свойства артефактов и юнитов)
D = D + D * I_DMG / 100.
8. Учитываются сумма модификаторов, снижающих получаемый урон (контактный или стрелковый) защищающимся отрядом (звания, заклинания, свойства артефактов и юнитов)
D = D - D * R_DMG / 100.
R_DMG не может быть выше 90%.
9. Учитывается пенальти за стрельбу на дальнюю дистанцию ( 0.5 ) и сумма модификаторов, увеличивающие урон. Например, "Удар двойной силы" Рыцарей Сметри, "Атака в окружении" у Ётуновых Питомцев.
D = D * ( 1.0 - PENALTY ) * COEFF.
10. Учитывается влияние боевых медалей в достижениях героя, владеющего нападающим отрядом.
11. Учитывается возможная "Ненависть" нападающего к защитнику.
12. Учитывается свойство "Гнев".
13. Учитывается час Силы / час Слабости от Астрологов.
14. Учитываются свойство "Кавалерийский бонус" у нападающего (увеличение урона за каждую пройденную клетку).
15. Учитывается свойство "Глухая оборона" у защитника (снижение урона за каждую пройденную нападающим клетку). Например, от комплекта Ветерана.
16. Учитывается свойство "Уклонение от урона" у защитника (вероятностное снижение урона). Например, у Утонувших.
17. Результирующий урон не может быть меньше 1.