public virtual void UpdateSpell() { HasDirectDamage = false; HasDirectHeal = false; HasAbsorb = false; HasOverTimeDamage = false; HasOverTimeHeal = false; float hc = 1f / (1f + stats.SpellHaste); IsInstant = BaseCastTime == 0f; if (IsInstant) { CastTime = 0f; } else { CastTime = Math.Max(1f, BaseCastTime * hc); } GlobalCooldown = Math.Max(1f, BaseGlobalCooldown * hc); CritChance = stats.SpellCrit; CritMultiplier = 1.5f * (1f + stats.BonusCritHealMultiplier); ManaCost = BaseManaCost * BaseStats.GetBaseStats(character).Mana; // priestInformation.BaseMana; if (IsInstant) { ManaCost *= PriestInformation.GetMentalAgility(character.PriestTalents.MentalAgility); } }