Beispiel #1
0
        public override void UpdateSpell()
        {
            float shieldBonus = (1f + PriestInformation.GetImprovedPowerWordShield(character.PriestTalents.ImprovedPowerWordShield))
                                * (1f + PriestInformation.GetTwinDisciplines(character.PriestTalents.TwinDisciplines))
                                * (1f + stats.ShieldDiscipline);
            float spellPowerBonus = stats.SpellPower * BaseDirectCoefficient;

            base.UpdateSpell();
            Cooldown = BaseCooldown - PriestInformation.GetSoulWarding(character.PriestTalents.SoulWarding);

            AbsorbMinHit = AbsorbMaxHit = AbsorbAvgHit = (BaseDirectValue + spellPowerBonus) * shieldBonus;

            if (character.PriestTalents.GlyphofPowerWordShield)
            {
                DirectHealMinHit  = DirectHealMaxHit = DirectHealAvgHit = AbsorbAvgHit * 0.2f;
                DirectHealMinCrit = DirectHealMaxCrit = DirectHealAvgCrit = AbsorbAvgHit * 0.2f * CritMultiplier;
                DirectHealAvg     = DirectHealAvgHit * (1f - CritChance) + DirectHealAvgCrit * CritChance;
                HasDirectHeal     = true;
                if (stats.PriestSpec == ePriestSpec.Spec_Disc)
                {
                    DivineAegis();
                }
                else if (stats.PriestSpec == ePriestSpec.Spec_Holy)
                {
                    EchoOfLight();
                }
            }

            AbsorbAvg = AbsorbAvgHit + AbsorbAvgCrit * CritChance;
        }