Исходные данные:
Урон (Y) - наше искомое значение
Базовый урон (B) - мин значение 5, макс значение 9
Уровень (L) - уровень персонажа
Урон оружия (W) (минимальный урон, максимальный урон)
Мастерство владения оружием (U) - усиливает только урон оружия, а не весь урон. +7% к урону оружием за каждое владение
Мощность урона (M) Мощность урона выбирается в соответствии с профилем атаки
Мощность крита (K) - мощность критического удара
Влияние статов (S) - влияние наших статов на профильный урон
Колющий: S = Сила * 0.60 + Ловкость * 0.40
Рубящий: S = Сила * 0.70 + Ловкость * 0.20 + Интуиция * 0.20
Дробящий: S = Сила * 1.00
Режущий: S = Сила * 0.60 + Интуиция * 0.40
Формула урона выглядит так:
Y = (B+L+S+W*(1+0,07*U))*(1+M/100) для обычного удара
Y = (B+L+S+W*(1+0,07*U))*(1+M/100)*2*(1+K/100).
Для критического удара умножаем сначала на 2, потому что наносится критический удар. Даже без мощности крит. удара в 2 раза больше урона. А потом уже умножаем полученный урон на мощь крита.
Для минимального и максимального урона формулы выглядят следующим образом:
Y(min) = (B(min)+L+S+W(min)*(1+0,07*U))*(1+M/100)
Y(max) = (B(max)+L+S+W(max)*(1+0,07*U))*(1+M/100)
Вероятности атак оружия:
Ничтожно редки: 1% - 9%
Редки: 10% - 19%
Малы: 20% - 39%
Временами: 40% - 69%
Регулярны: 70% - 89%
Часты: 90% - 99%
Перейдем к броне, защите от урона и пробою брони.
Параметр БРОНЯ является "плавающим". Для примера возьмем осаду.
Броня головы: 44-192
Броня корпуса: 39-192
Броня пояса: 40-217
Броня ног: 55-232
Как работает пробой брони? Рассмотрим на примере удара ножом с пробоем в 70% (PR) в голову осаднику. Расчетный урон (по формуле выше) у нас Y.
Обязательно необходимо учитывать тот факт, что пробой работает только на "плавающей" части брони. У нас "плавающая" часть являет собой диапазон 44-192. Это значит, что урон меньше 44 не может не поглотиться по определению.
Для примера возьмем урон Y = 200.
Для начала "кидается кубик", то-есть, с помощью генератора случайных чисел в диапазоне от 44-192 решается, какая броня "сработает".
На данный удар. BR=random(44,192). Допустим, выпало число 100. Наш пробой на ноже в 70% означает, что сработает лишь 30% от сыгравшей брони, то есть, броня должна поглотить всего 30 урона, но меньше минимального значения брони (у нас он 44) поглотиться не может по определению.
Поэтому, после работы брони наш урон Y1 будет следующим: Y1 = Y - (100 - 100 * 70/100) = Y-30 = Y-44
Сама формула имеет вид: Y1 = Y - (Br-BR*Pr/100). При условии, что Y=200, имеем: Y1 = 156
После брони начинает работать Защита от урона.
Точная формула зависимости поглощения урона от параметра "Защита от урона":
x=(1-0.5^(N/250))*100, где:
х - процент поглощаемого урона
N - наш параметр *Защита от урона*
Пример: у нас 400 защиты от урона, имеем:
x=(1-0,5^(400/250))*100 = (1-0,5^1,6)*100 = 67,0123%) . То есть, при защите от урона в 400 ед. по нам пройдет лишь 33% урона.
Еще необходимо учесть такой момент, как атака старшего уровня по младшему. В таком случае защита от урона у младшего уровня работает не на 100%. Если атакующий игрок на 1 уровень выше, то показатель защиты от урона (N) предварительно умножаем на 0.83, если 10-ый - на 0.69, если 11-ый - на 0.58.
В нашем примере (оба бойца одного уровня) урон после работы брони (Y1) равен 156. При защите от урона в 400 единиц, итоговый урон будет: 156*0.33 = 51.48 = 51 (округляем)