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