Exemple #1
0
        public virtual TimeSpan GetCastDelay()
        {
            double value = CastDelayBase + (double)RequiredSkillValue / 10 * .1;

            double bonus = 4;

            if (PromptitudeSpell.m_PromptitudeTable.Contains(Caster))
            {
                bonus -= (double)PromptitudeSpell.m_PromptitudeTable[Caster];
                Effects.SendTargetParticles(Caster, 14186, 10, 15, 5013, 2042, 0, EffectLayer.CenterFeet); //ID, speed, dura, effect, hue, render, layer
                Effects.SendTargetParticles(Caster, 14154, 10, 15, 5013, 2042, 0, EffectLayer.CenterFeet); //ID, speed, dura, effect, hue, render, layer
                Caster.PlaySound(480);
            }

            if (ConscienceSpell.m_ConscienceTable.Contains(Caster))
            {
                bonus -= (double)ConscienceSpell.m_ConscienceTable[Caster] * SpellHelper.GetTotalCreaturesInRange(Caster, 5);
                Effects.SendTargetParticles(Caster, 14276, 10, 20, 5013, 1441, 0, EffectLayer.CenterFeet); //ID, speed, dura, effect, hue, render, layer
                Caster.PlaySound(527);
            }

            if (SoifDuCombatSpell.m_SoifDuCombatTable.Contains(Caster))
            {
                bonus -= ((double)SoifDuCombatSpell.m_SoifDuCombatTable[Caster] - 1);
                Effects.SendTargetParticles(Caster, 14170, 10, 15, 5013, 44, 0, EffectLayer.CenterFeet); //ID, speed, dura, effect, hue, render, layer
            }

            if (value < CastDelayMinimum)
            {
                value = CastDelayMinimum;
            }

            return(TimeSpan.FromSeconds(value));
        }