Hi,
Looks like you did some cool things with it. As your previous edit says, it does look a bit esoteric, but there are probably some ways to simplify thing so that what it's doing is more clear.
For moving the player repeatedly till it's moves are used up or end turn is clicked I think adding another state would do that. So it would be:
"show moves", which would highlight the moves in range.
"wait player", would be largely the same but only allow clicking on in range tiles
"move player", largely the same, but would subtract from the range as the player moved. if the range wasn't 0 at the end it would go back to "show moves"
"move enemies", would remain the same.
I can't edit the cp3 because i don't own c3 and it's beyond the free limits. However the highlighting moves should boil down to something like this:
if state="show moves"
pathfind from player.target
unhighlight all hex
pick hex with hex.dist>0 and hex.dist<=playerMoves
highlight hex
set state to "wait player"
Having the player, and enemies be able to move into each other to attack probably needs some more thought on how we are doing things. Right now when an object moves it thinks of everything else as a wall.
For player movement: if we click on a tile, and an enemy is on it, we can decide not make that one a wall, since typically we make enemies walls.
For enemies, we already have that logic in event 38 to do attacking. I just don't do anything, except not move into the tile.
Anyways, just some ideas. I haven't done any updates to the examples, just referenced them.