Hi MonkeyPants, glad you figured out the diamond shape/minimum range stuff on your own. It is not set up at a per-unit basis at the moment, but it is very easy to set up. First you should create two new public variables in the Unit_Parent blueprint; one boolean and one integer. You could call the boolean “diamond shaped range” and the integer “min range”. Then in ATBTT_PlayerController go to the Activate Unit part of the blueprint and get those two public variables from current pawn, the same way I get current move, range etc. in that part of the graph. Connect diamond shaped range to the “Diamond Shape” poolean input in the Find Tiles In Range function and min range on the min range integer input and you’re good to go.
It is worth noting one bug, though. If you enable diagonal movement on a pawn, but have diamond shaped vision and a range of 1 it will cause problems. The reason is that when the AI finds a path to a player it naïvely assumes that any tile that is 1 movement away from the player are also in range of the player. If the AI does have diagonal movement it may stop on one of the tiles diagonal to the player and then try to attack. If it has a diamond shaped range of 1 the player will not be in range. When looking for a target this will return 0 and the AI will teleport to index 0 on the grid. To avoid this do not use any units with both diagonal movement, diamond shaped vision and a range of 1. I think this is a corner case as all games I know of with diagonal movement do not have diamond shaped vision. I am nonetheless working on a solution, but it’s actually a somewhat tricky problem to solve.
As for starting the game with no units selected, I solved this for another user a few posts up. Look at my post three posts before your own.
There are a number of different ways to set up counter attacks, and it depends a bit what you’re going for. I would start by looking in the blueprint graph of Unit_Parent in the Receive Damage part of the graph. From there you should fire a new attack target event from the unit receiving damage. There’s a bit more to it than that, but that’s the general idea.