Here are my thoughts on a workable way of handling ranged attack and movement that would support different ranges for weapons; a melee weapon would be one with very short range.
-
When a enemy is clicked (or touched), an attack occurs if it is in range of the selected weapon, otherwise to the player moves in the direction of the enemy.
-
We give mouse users visual indication of what will occur by displaying a combat or movement icon when the cursor is over the enemy.
-
Controller users use the x-y axis inputs to move and attack with the attack button. A combat/movement icon is shown over the currently selected enemy (however selecting is done).
-
Mouse/touch users can move instead of attack by clicking terrain.
I think this scheme will also handle things like assigning weapons to right and left mouse buttons, or controller button.