Відповідь: Кастование.
Вычисление продолжительности каста.
С магических вандов каст мгновенный - задержка 0.
Усчаствуют такие переменные, определённые для каждого типа заклинаний:
CastDelayFastScalar:
магия = 1
CastDelaySecondsPerTick:
магия = 0.25 сек
CastDelayMinimum:
магия = 0.25 сек. = CastDelayBase/3
CastDelayBase:
магия = ( 3 + уровень ( цикл - 1 ) заклинания ) * CastDelaySecondsPerTick
Для некоторых заклинаний эта задержка определена отдельно, например к времени вызова суммона всегда будет добавляться ещё 6 секунд. Возможно со временем и там внесу изменения, тогда отредактирую тут, но пока будет по стандарту.
Для всех остальных:
Кап на бонусы:
для магии, некромантии и ( шивалри, если магия больше 70 ) ограничено 2
для магии, некромантии и ( шивалри, если магия меньше 70 ) ограничение fcMax = 2.
для всего остального fcMax = 4.
fc = бонус на ускорение кастования со всех вещей.
если fc > fcMax, fc = fcMax
fc - 2, если кастер под воздействием заклинания Защита
fc - значение определённое как FCMalus в заклинании арканиста "Сущность ветра" ( EssenceOfWind ), если кастер под его воздействием.
если fc > fcMax, fc = fcMax
Время в секундах fcDelay = - CastDelayFastScalar * fc * CastDelaySecondsPerTick
Время в секундах baseDelay = CastDelayBase
Время в секундах delay = baseDelay + fcDelay
Время в секундах delay_castDB =
для Bushido и Ninjitsu: ( min навык для каста / 40 + ( max навык для каста - навык кастера ) / 20 ) * CastDelaySecondsPerTick. Если delay_castDB < CastDelayBase, то станет CastDelayBase.
для всего остального = CastDelayBase.
Время в секундах delay = baseDelay + fcDelay
Если delay < CastDelayMinimum, то delay = CastDelayMinimum
Если кастер под действием Influence DreadHornа, то delay увеличивается в 2 раза.
Вот delay и есть то время, которое кастер затратит на произнесение заклинания.
Пример:
Произношу заклинание 0-го цикла Magic Arrow:
CastDelayBase = 3+0=3 или 0,75 сек
CastDelayMinimum = 3/3 = 1 или 0,25 сек
бонусов на ускорение кастования в вещах 6, fc = 6
Заклинание Защита не наложено.
fcDelay = 1 * 6 * 1 = 6 или 1,5 сек
delay_castDB = 3 или 0,75 сек
delay = 3 - 6 = -3
-3 < CastDelayMinimum? да, значит delay = 1 или 0,25 сек.
На произнесение заклинания затратится 0,25 сек.
Произношу заклинание 7-го цикла ( 6-го уровня ) Flame Strike:
CastDelayBase = 3+6=9 или 2,25 сек
CastDelayMinimum = 9/3 = 3 или 0,75 сек
бонусов на ускорение кастования в вещах 6, fc = 6
Заклинание Защита не наложено.
fcDelay = 1 * 6 * 1 = 6 или 1,5 сек
delay_castDB = 3 или 0,75 сек
delay = 9 - 6 = 3
3 < CastDelayMinimum? нет, значит delay остаётся = 3 или 0,75 сек.
На произнесение заклинания затратится 0,75 сек.