Пример #1
0
        public virtual TimeSpan GetCastRecovery()
        {
            if (!Core.AOS)
            {
                return(NextSpellDelay);
            }

            int fcr = AosAttributes.GetValue(m_Caster, AosAttribute.CastRecovery);

            fcr -= ThunderstormSpell.GetCastRecoveryMalus(m_Caster);


            if (SpellHelper.IsBuffed(m_Caster))
            {
                fcr += SpellHelper.GetFCRBonus(m_Caster);
            }

            int fcrDelay = -(CastRecoveryFastScalar * fcr);

            int delay = CastRecoveryBase + fcrDelay;

            if (delay < CastRecoveryMinimum)
            {
                delay = CastRecoveryMinimum;
            }

            return(TimeSpan.FromSeconds((double)delay / CastRecoveryPerSecond));
        }