well I know that there is a distance function to where you can tell how far too actors are away from each other. For example in my game my monsters roam until the player is <= 2400 units away. Then they shoot. For your game you could do something like if the player is 2000 units away activate ranged attack.
For when to use special moves, maybe you could do something like everytime he does 3 regular attacks, make him do a special. That way the player can learn that “ok he does this special attack after 3 normal attacks so I better be ready”. It really depends on how you wanna do it.