Server.Spells.Spell.GetDamageScalar C# (CSharp) Méthode

GetDamageScalar() public méthode

public GetDamageScalar ( Mobile target ) : double
target Mobile
Résultat double
		public virtual double GetDamageScalar( Mobile target )
		{
			double scalar = 1.0;

            double casterEI = m_Caster.Skills[DamageSkill].Value;
            double targetRS = target.Skills[SkillName.MagicResist].Value;

            if (casterEI > targetRS)
                scalar = (1.0 + ((casterEI - targetRS) / 500.0));
            else
                scalar = (1.0 + ((casterEI - targetRS) / 200.0));

            // magery damage bonus, -25% at 0 skill, +0% at 100 skill, +5% at 120 skill
            scalar += (m_Caster.Skills[CastSkill].Value - 100.0) / 400.0;

            if (!target.Player && !target.Body.IsHuman /*&& !Core.AOS*/ )
                scalar *= 2.0; // Double magery damage to monsters/animals if not AOS

            if ( target is BaseCreature )
				((BaseCreature)target).AlterDamageScalarFrom( m_Caster, ref scalar );

			if ( m_Caster is BaseCreature )
				((BaseCreature)m_Caster).AlterDamageScalarTo( target, ref scalar );

			target.Region.SpellDamageScalar( m_Caster, target, ref scalar );

			return scalar;
		}