Feedback on my Player Controller - what is the right way to use it?

Hello everyone,

I’m a beginner with UE4 and I’m trying to make a small level for a Diablo like ARPG. I looked online but there are not many tutorials about this, at least not very detailed and most Top-Down tutorials are for shooters.

What I’m trying to create is a small level where the Player Character can pick up one of 3 weapons and hit a Dummy Character with it. No animations right now, I’m working on the blueprint side.

I’m looking for help on how to set this up. Following the Topdown template I set up most of my logic on the Player Controller and I’m noticing that this isn’t exactly correct but I’m not sure how exactly to do things differently.

This is how I set it up:

First question here, it seems to me that using branches like this is not the best practice, especially if I have more than 2 options. Should I be looking for something else here, like enums? How would I use them in this case?

Next thing I have an Event Tick:

My main questions are with yellow. Is this the correct way to set this up? It seems that I should have it in my PlayerCharacter but I’m not sure exactly how to do this. Do I keep the player range check in my PlayerController and , if in range, tell my PlayerCharacter to do something? And set up the Events on my PlayerCharacter? How would I do this exactly, using custom event and casting to the PlayerCharacter blueprint?

I guess these are pretty straightforward for most of you but I’m kinda stuck here, like I said I’m an UE4 noob and I’m not sure what’s the best way to continue here.
Right now I can pick up weapons and when weapon is equipped I can attack a dummy for 10 dmg , so let’s say what I wanted to do works but it’s not easy to expand on this. I’m looking for a better way of doing this.

Thank you !