Формулы

Последняя правка 4010 дней назад
Материал из UFO Wiki
Перейти к навигации Перейти к поиску
Wiki.png Незавершённая статья

Вы можете помочь Нам, дополнив её недостающим материалом.


Расчёт опыта на изучение скила (устарели)[править | править код]

sp = 250*skill_lvl*(rank*(rank + 3))

  • rank - сложность изучения
  • skill_lvl - уровень скилла (от 1 до 5)

Каждый пункт характеристики свыше 10 снижает опыт, требуемый на скилл

  • первичная - на 2%
  • вторичная - на 1.5%

С влиянием характеристик персонажа (сила, ловкость и тд.)[править | править код]

sp = 3^rank*lvl(1000-30*(priattr-10)-15*(secattr-10))

Маскировка[править | править код]

covermod = covermod_base * (1 - camo / (camo + 1))

, где covermod_base - перекрытие препятствия, уменьшение шанса попадания. Лежит в пределах от 1 (нет препятствия) до 0 (цель полностью перекрыта)

covermod - перекрытие с учетом маскировки

camo - нормализованная (деленная на 100) маскировка брони

Таким образом, положительная маскировка увеличивает перекрытие препятствия, снижая шанс попадания, отрицательная - уменьшает перекрытие, увеличивая шанс попадания.

Урон[править | править код]

dmg_hp = dmg*dmg/(dmg + armor)*p_resist

где:

  • dmg_hp - урон по здоровью
  • dmg - прилетевший урон
  • armor - защита брони
  • p_resist - коэффициент снижения урона (сейчас нигде не используется)

ОД на переключение между слотами[править | править код]

max((w1 + w2) / 3, min(w1, w2))
Или если человеческим языком, ОД на смену оружия равно сумме ОД на экипировку обоих стволов, деленной на 3, но не меньше, чем ОД на экипировку самого быстро экипируемого оружия из двух.

Примеры:

Оружие1 - 4 ОД, Оружие2 - 12 ОД
12 + 4 = 16; 16/3 = 5; 5 > 4; ОД = 5

Оружие1 - 7 ОД, Оружие2 - 8 ОД
7 + 8 = 15; 15/3 = 5; 5 < 7; ОД = 7

ОД на переключение между слотами = (ОД_на_экипировку_оружия_1 + ОД_на_экипировку_оружия_2)/2 Старая

Характеристики[править | править код]

C = (C_base + base_train)*(1 + advanced_train/100)*(1 + learning/100)

  • C - результирующее значение хар-ки
  • С_base - родное, полученное при генерации перса
  • base_train - бонус, даваемый базовыми тренингами
  • advanced_train - бонус, даваемый мастер-тренингами
  • learning - бонус, даваемый "Всесторонним развитием"

Падение урона на расстоянии[править | править код]

Зависимость урона от расстояния Урон остается постоянным, если расстояние до цели меньше, чем максимальная эффективная дальность оружия. В случаях, когда расстояние до цели превышает максимальную эффективную дальность оружия, используется следующий коэффицент снижения урона:

k := (rmax - rmin)/(dist - rmin)

где

  • rmax - максимальная эффективная дальность
  • rmax - минимальная эффективная дальность
  • dist - расстояние до цели в момент выстрела

Шанс цепляния мобами[править | править код]

Каждому сектору мира ставится в соответствие спаун - сущность, описывающая количество и качество фауны. У спауна есть параметр "level100", который показывает, какой уровень игроков цепляет со 100% вероятностью.

Зависимость шанса цепляния от уровня игрока

aggro = (-0.25*player_lvl + 0.75*level100 + 1)*(1 - k)*supress_factor, где

  • aggro - нормализованный шанс цепляния
  • player_lvl - уровень игрока
  • k - скилловый коэффициент снижения шанса цепляния (навык "Следопыт" увеличивает k на 5% за уровень, т.е. при максимальной раскачке k = 0.25)
  • supress_factor - степень выбатленности спауна (0...1)

Критический урон[править | править код]

крит = макс дамаг патрона * модификатор * мод. крита

Штраф на перемещение[править | править код]

Начиная с 75% загрузки инвентаря идет штраф на скорость перемещения.

k := max(min(4 * mass/mass_max - 3, 1), 0);
triptime := round(aRoomTime * base_triptime * (k + 1));