Different enemy types script design

So I have 2 different enemy types for now. Both of them with EnemyAi, Health scripts tied to parent and EnemyAttack script tied to child damage zone trigger.

Currently the enemies are all melee and just have different damage and attack delay from EnemyAttack.cs. I wanted to add some abilities for the enemies so they may for example stun, slow you on attack; some may also have occasional projectile shooting towards the player; some may charge at the player. So where would it make sense I add the scripts for that? I had an idea of using enum on enemyAi, so EnemyAttack will use switch with the enum enemy type on attack method but I want to hear your opinions. Maybe separate script for each special ability would be good?

a separate script for each ability will be very good. Let the scripts all inherit from a generic attack class, so you can add that class to the player:

public class stun: attack
{

}