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)); }