Кастование.

KOCTa

Dedywkо |Co100
Команда форуму
Супер Модератор
Описание различных значений, которые касаются кастования, их стандартное вычисление и то, что будет мною вноситься.
К этому относится всё что связано со скоростью кастования, силой поражающих, проклинающих и поправляющих заклинаний, задержкой после кастования до возможности следующего кастования, кастования "находу", кастования со свободными руками и прочее.
В первую очередь буду писать то, куда вношу изменения.
 

KOCTa

Dedywkо |Co100
Команда форуму
Супер Модератор
Відповідь: Кастование.

Вычисление продолжительности каста.
С магических вандов каст мгновенный - задержка 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 сек.
 

KOCTa

Dedywkо |Co100
Команда форуму
Супер Модератор
Відповідь: Кастование.

Вычисление задержки до следующего каста.
Усчаствуют такие переменные, определённые для каждого типа заклинаний:
CastRecoveryBase:
для магии = 6
CastRecoveryFastScalar
для магии = 1
CastRecoveryPerSecond
для магии = 4
CastRecoveryMinimum
для магии = 0

fcr = бонусы на востановление после заклинания со всех вещей.
fcr - 6 если под воздействием арканского заклинания ThunderstormSpell

fcrDelay = - CastRecoveryFastScalar * fcr

delay = CastRecoveryBase + fcrDelay
castRB =
для Bushido и Ninjitsu: ( min навык для каста / 40 + ( max навык для каста - навык кастера ) / 20 ) * CastDelaySecondsPerTick. Если delay_castDB < CastRecoveryBase, то станет CastRecoveryBase.
для всего остального = CastRecoveryBase.

delay = castRB + fcrDelay

Если delay < CastRecoveryMinimum, то delay = CastRecoveryMinimum

delay/ CastRecoveryPerSecond и будет время в секуднах, которое кастеру потребуется для востановления после предыдущего заклинания.
 

KOCTa

Dedywkо |Co100
Команда форуму
Супер Модератор
Відповідь: Кастование.

Вычисление требуемой на заклинание маны.
LowerManaCap = 40 80

scalar = 1.0
Если кастер под действием заклинания MindRot, то scalar = коэфициенту: для игроков 1.25, для мобов 2.0

lmc = бонусы на экономии маны со всех вещей.
Если lmc > LowerManaCap, lmc = LowerManaCap

scalar - lmc/ 100

Если мана требовалась на обилку, и эта абилка используется в течении 3 секунд после применения предыдущей, scalar * 2.

Требуемая мана = базовая мана * scalar
 
Зверху