It’s easier if you let the enemies do the damage to the character with ApplyDamage.
But if you do want to do it this way, you need to cast to each enemy in turn until you get a match.
Unless, you have a generic enemy class containing all the variables, which you make child classes from. Then you only need to cast to the parent class.