it's quite easy to do it with events though it gets hard if you start thinking of stuff like "hi how come my range attack can ignore walls??"
but when it comes to melee attacks it's really just simple delays and damages system, not hard, shame it can't be connected with a damage showing script but you can always make number animation judging by the damage.
basicly what you need to do is make a parallel process that checks if you hit the attack button, make the attack animation, add delay and check if there are enemy events around you (assuming you have range, if there are enemies around your range tiles) then you make a damage calculating system like power-defense=damage, add a hit animation, maybe numbers animations to show damage and that's it
then you make new buttons for new attacks and you are done with the player
then you make events which do the same though attack at random and only if the player enters their range