If your player character has a medium-range attack, you might consider having enemies with medium- to long- range attacks, allowing them to challenge the player by requiring that the player evade their attacks while getting close enough to hit them.
This doesn't necessitate terribly complex enemies, however, I believe. For a few examples, you might have:
- An enemy that performs its attack on a strict timer, regardless of the player's presence or absence.
- An enemy with a simple linear patrol, walking left some distance, then right some distance, then repeating. If the player is located in the direction in which the enemy is facing, the enemy stops patrolling; if the player is also within attack range, the enemy attacks.
- An enemy that patrols, as in the second example above, but which always knows when the player is nearby and turns to attack.
- An enemy that lobs grenade-like projectiles with an arcing trajectory, but with limited range; its behaviour might fit any of the examples above.
- An enemy that acts as in one of the examples above, but which has an erratic firing interval, calling for the player to react to each shot rather than just adjusting to a fixed timing.
Of course, it might still be worth having some melee-only enemies, whether weak, and thus providing some easy foes, or one or more of agile, tough and fast, making for a challenging change of pace from the usual enemies.