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 weapon = target.GetEquippedMissileWeapon(); if (weapon != null && weapon.AbsorbMagicDamage != null) return AbsorbMagic(target, weapon); break; case CombatMode.Magic: weapon = target.GetEquippedWand(); if (weapon != null && weapon.AbsorbMagicDamage != null) return AbsorbMagic(target, weapon); break; } return 1.0f; }