My combat system looks like this: Two teams stand opposite each other. Each team has its own grid on which they can move. Its maximum size is 4x4. Skills vary by location. For example, a sword strike hits any target in front of him at a distance of 3. That is, being on his second cell, a sword strike covers only 2 cells of a foreign grid (and if the character stood on the edge point-blank to a foreign cell, he would cover all 3 enemy grids ) Also, for example, there are skills that require line of sight. That is, the skill will hit the nearest one who is in her way.
So the first question, in your opinion, what is the best way to create this using the resources of the framework?
A team can only move on its own grid. But in the rare case of a special skill, a team member can jump to the opposite one.
Typically, a character's default attack is a square-thick forward attack with no ability to turn. For game design balance, I would like an enemy that is not on its own grid to be attacked according to the new rules (default attacks in its grid can be in any position on the enemy)
So the second question. How to make several different states for one skill? That is, it usually only hits straight with a 1x3 line. But if the enemy has a special state (being not on his grid), then, for example, he can always be attacked regardless of the location