Ejemplo n.º 1
0
        public float GetAbsorbMod(Creature target)
        {
            switch (target.CombatMode)
            {
            case CombatMode.Melee:

                // does target have shield equipped?
                var shield = target.GetEquippedShield();
                if (shield != null && shield.AbsorbMagicDamage != null)
                {
                    return(GetShieldMod(target, shield));
                }

                break;

            case CombatMode.Missile:

                var missileLauncherOrShield = target.GetEquippedMissileLauncher() ?? target.GetEquippedShield();
                if (missileLauncherOrShield != null && missileLauncherOrShield.AbsorbMagicDamage != null)
                {
                    return(AbsorbMagic(target, missileLauncherOrShield));
                }

                break;

            case CombatMode.Magic:

                var caster = target.GetEquippedWand();
                if (caster != null && caster.AbsorbMagicDamage != null)
                {
                    return(AbsorbMagic(target, caster));
                }

                break;
            }
            return(1.0f);
        }