Time = Level x 4 Time - текущее значение времени на возрождение Level - текущее значение уровня героя
Gold = Level x 30 Gold - текущее значение потерянного золота из-за смерти
TotalCost = ∑(Cost[i]) TotalCost - текущее значение стоимости всех предметов в инвентаре i - количество предметов в инвентаре ∑ - сумма i множителей Cost[i] - значение стоимости предмета под номером i в инвентаре
Str = Str_base + Str_inc Str - текущее значение силы Str_base - базовое значение силы Str_inc - значение дополнительной силы от способностей и предметов
Agi = Agi_base + Agi_inc Agi - текущее значение ловкости Agi_base - базовое значение ловкости героя Agi_inc - значение дополнительной ловкости от способностей и предметов
Int = Int_base + Int_inc Int - текущее значение интеллекта Int_base - базовое значение интеллекта героя Int_inc - значение дополнительного интеллекта от способностей и предметов
HP = HP_base + Str x 19 + HP_inc HP - текущее значение здоровья HP_base - базовое значение здоровья (на данный момент, у всех героев: BacHP = 150) HP_inc - значение дополнительного здоровья от способностей и предметов
MP = Int x 13 + MP_inc MP - текущее значение маны MP_inc - значение дополнительной маны от способностей и предметов
RHP = RHP_base + Str x 0.03 + RHP_inc + RHP_dec x (1 – MR) RHP - текущее значение регенерации здоровья RHP_base - базовое значение регенерации здоровья RHP_inc - значение дополнительной регенерации здоровья от способностей и предметов RHP_dec
- значение отрицательной регенерации здоровья от способностей и
предметов (например: способность Rot героя Pudge наносит ему урон,
который гасится защитой от магии)
RMP = RMP_base + (Int x 0.04) x (1 + RMP_inc% / 100) + RMP_inc RMP - текущее значение регенерации маны RMP_base - базовое значение регенерации маны RMP_inc - значение дополнительной регенерации маны от способностей и предметов RMP_inc% - значение дополнительной процентной регенерации маны от способностей и предметов
Armor = Armor_base + Armor_inc + Agi / 7 Armor - текущее значение защиты Armor_base - базовое значение защиты Armor_inc - значение дополнительной защиты от способностей и предметов
DR = (Armor x 0.06) / (1 + Armor x 0.06) DR - текущее значение понижения урона
Dodge = 1 - (1 - Eva) x (1 - TrigEva) x (1 - Miss) Dodge - текущее значение шанса избежать физический урон Eva - значение максимального шанса на уворот среди способностей и предметов TrigEva - значение максимального шанса на тригеррный уворот среди способностей и предметов Miss - значение максимального шанса на промах среди способностей и предмето
PEHP = HP x (1 + 0.06 x Armor) / (1 - Dodge) + PEHP_inc PEHP - текущее значение живучести против физического урона PEHP_inc - значение дополнительного PEHP от способностей и предметов
MR = [1 - (1 - MR_base) x (1 - MR_skill) x (1 - MR_item)] x 100 MR - текущее значение магической защиты MR_base - базовое значение магической защиты (на данный момент, у всех героев: MR_base = 0.25) MR_skill - значение максимальной среди способностей магической защиты MR_item - значение максимальной среди предметов магической защиты
MEHP = HP / (1 - MR) + MEHP_inc MEHP - текущее значение живучести против магического урона MEHP_inc - значение дополнительного MEHP от способностей и предметов
MS = (MS_base + MS_item + MS_skill) x (1 + MS_item1% / 100) x (1 + MS_item2% / 100) x (1 + MS_skill% / 100) MS - текущее значение скорости передвижения MS_base - базовое значение скорости передвижения MS_item - значение максимальной скорости передвижения среди предметов MS_skill - значение скорости передвижения от способностей MS_item1% - значение процентной скорости передвижения от предмета Yasha MS_item2% - значение процентной скорости передвижения от предмета Sange and Yasha MS_skill% - значение процентной скорости передвижения от способности
Attack = (Attack_base + Attribute) + (Attack_base + Attribute) x Attack_inc% + Attack_inc Attack - текущее значение атаки Attack_base - базовое значение усредненной атаки (Например: 10-20, Attack_base = 15) Attribute - текущее значение основного параметра героя (сила, ловкость, интеллект) Attack_inc% - значение процентного увеличения атаки от способностей и предметов Attack_inc - значение дополнительной численной атаки от способностей и предметов
AC = AC_base / (1 + (IAS + Agi) / 100) AC - текущее значение задержки между атаками AC_base - базовое значение задержки между атаками IAS - прирост скорости атаки
Range = Range_base + Range_inc Range - текущее значение дальности атаки Range_base - базовое значение дальности атаки Range_inc - значение дополнительной дальности атаки
Bash = 1 - ∏(1 - B[i]) Bash - текущее значение шанса на баш i - количество шансов на баш ∏ - произведение i множителей B[i] - шанс на баш под номером i
CS = 1 - ∏(1 - СS[i]) CS - текущее значение шанса на критический удар i - количество шансов на критический удар ∏ - произведение i множителей CS[i] - шанс на критический удар под номером i
LS = LS_skill + LS_item + LS_inc LS - текущее значение Life Steal LS_skill - значение максимального Life Steal среди способностей LS_item - значение максимального Life Steal среди предметов LS_inc - значение дополнительного Life Steal
___________________________________________________________________ Расчет критических ударов в DPS CritDPS одинаков для героев и с ближним и с дальним типом атаки: при совпадении нескольких критов на удар всегда работает последний из билда при совпадении крити и баша на один удар крит работает всегда Алгоритм: Сортируем по порядку закупа/прокачки в билде. Начинаем цикл с самого позднего предмета/способности. Считаем по методу гашения процентов общий шанс его и предыдущих критов по начальным шансам. Вычитаем
из этого шанса полученные шансы предыдущих критов и получаем шанс для
этого крита (полученный шанс отличается от начального). Суммируем
произведения урона критов (с учетом факта, что крит гасит обычный
удар), шанса критов, урона героя и делим сумму на AC.
___________________________________________________________________ Расчет башей в DPS BashersDPS для героев с ближним типом атаки. Алгоритм: Суммируем произведения урона башей на шанс башей и делим сумму на AC. BashersDPS для героев с дальним типом атаки. Алгоритм: Сортируем баши и криты по порядку закупа/прокачки в билде. Делаем шаги 2-4 для критов, чтобы иметь полученные шансы для критов. Начинаем цикл с самого позднего предмета/способности. Считаем по методу гашения процентов общий шанс баша и предыдущих критов и башей по начальным шансам. Вычитаем из этого шанса полученные шансы предыдущих критов и башей и получаем шанс для этого баша. Суммируем произведения урона башей на шанс башей и делим сумму на AC.
__________________________________________________________________ PDPS_melee = Attack / AC + CriticalsDPS + PDPS_inc PDPS_range = Attack / AC + CriticalsDPS + BashersDPS + PDPS_inc PDPS_melee - текущее значение физического урона в секунду для героя с атакой ближнего боя PDPS_range - текущее значение физического урона в секунду для героя с атакой ближнего боя PDPS_inc - значение дополнительного физического урона в секунду от предметов и способностей
MDPS_melee = Attack_mag / AC + BashersDPS + MDPS_inc MDPS_range = Attack_mag / AC + MDPS_inc MDPS_melee - текущее значение магического урона в секунду для героя с атакой ближнего боя MDPS_range - текущее значение магического урона в секунду для героя с атакой ближнего боя Attack_mag - значение дополнительного магического урона за удар от предметов и способностей