Как повышать скорость атаки, при этом увеличивая число ударов в минуту на одинаковое количество?

У меня есть персонаж, который стреляет один раз с промежуктом, равным FireRate. Персонаж может увеличивать скорострельность, поднимая бонусы. Проблема в том, что чем больше я уменьшаю FireRate, тем больше дополнительных атак даёт -0.1 FireRate. То есть, при изменении FireRate с 2.5 до 2 я получу 1 доп. атаку за 10 секунд, а при изменении с 0.2 до 0.1 - 50 доп. атак. Я видел в других играх(доте), что для решения этой проблемы вводят абстрактную скорость атаки, но формулы не нашёл. Можете скинуть их, пожалуйста?


Ответы (1 шт):

Автор решения: MBo

Если вы хотите, чтобы частота ударов увеличивалась пропорционально уровню, то и изменяйте частоту, а временной промежуток считайте как t = 1/f.

Если не хотите вводить новый параметр, то исходите из следующего - чтобы количество ударов в секунду увеличивалось, скажем, на 10% при достижении некого бонуса, то

1/new_t = (1 + 10/100)*1/t
new_t = t/1.1

Для увеличения частоты ударов на конкретное количество bonus при текущем промежутке t:

f = 1/t
new_f = f + bonus
new_t = 1 / (f + bonus) =  1 / (1/t + bonus) = t / (t*bonus + 1)
→ Ссылка