Thought I could post a couple of PMs between me and Wisdom- about implementing cover systems, since it might be of interest to more users. I’ve got ’s permission to post this:
Your cover system seems reasonable. An adjustment I would probably want to make if you want to be as close to XCOM as possible is to pregenerate all the cover instead of calculating it each time a unit enters a tile that might have cover. This way you can have the option of showing all tiles with cover to the player at any time (possibly when he/she presses a button). To do this, I would follow my example in the “Add Viewport Terrain To Arrays” function in BP_GridManager. In the last part of this function I assign edge costs to all indexes depending on the height difference between each tile and its neighbors. Something very similar could be done with a cover system. An integer storage like you suggest is one possibility here. A slightly less efficient, but more intuitive one is to use structs like I do with edge costs.
As for deciding whether or not a unit has cover depending on where the attacker is standing in relation to the target, there are many ways to do this. If what you want to achieve is simply to for instance give cover bonus to a unit with eastern cover against all units east of that unit, you could simply find the X location of one unit and subtract it from the other. Depending on whether it is negative or positive you know which side of the unit it is. Same for north and south cover, only with the Y location.
Also, you’re saying that you are working on an action point system. I’m unsure if you are asking for my help on this, but if you are, know that the toolkit has a half-way implemented action point system already. If you check “Unit Can Split Up Turns” on a unit, movement can be parceled into multiple moves. This is quite simple to convert to also work for attacks. Rename Current and Max move to current/max action points and check that you have enough before making an attack, subtracting the appropriate number from current action points if you do. Also, disable the part in Receive Damage in Unit_Parent that ends the turn after a unit takes damage.
Those are my suggestions in any case. Looking forward to seeing your game in action!