When firing ranged weapons, player's accuracy is implicitly affected by the target direction: when switching to a different target, you lose steadiness depending on the angle between previous and the new target.
That implementation is subpar, at the very least because it is a mechanic which is not clear to player.
Personally I had no idea about it before I've read the ranged code, and I pretty sure most players are the same.
Describe the solution you'd like
Add a direction property to every creature.
Update it when creature moves in one of 8 main directions (for free, don't subtract additional move points, it would unnecessary complicate things).
In targeting UI, display both values (need to think of a good visual representation, clear and easily understandable at a glance): direction and steadiness (recoil).
When aiming, improve both values by changing direction to the target one and increasing steadiness. Increasing direction takes priority.
Decrease overall deviation of a bullet depending on steadiness, but make it absolutely impossible to hit the target unless the direction is correct. That way aiming would take roughly the same time as before to reach the same hit chance, but even without aiming at all the player will have a general idea where the bullet will go - in contrast with the current situation, where unaimed shot can go anywhere in 180 degree arc.
Display the possible shot arc on terrain map so the player sees what he can hit if he shoots right now - would be especially useful for launchers, so you can be absolutely sure you won't explode yourself by hitting the wall next to you.
Introduce different turning speed for different guns.
Introduce different steadiness and direction penalties when being attacked, moving, etc for different guns.
Apply the same to enemies. Introduce different turning speed for different enemies.
Balance the aiming speed. As a sanity check, getting an ideal aim at a target with any weapon should not take more than 3-4 turns in normal conditions (not moving, not being attacked, no debuffs).
(maybe move to a separate issue): add the ability to lock on target so you keep bead on it when moving around at the cost of some movement speed. Useful for shooting while strafing; for creating ambushes.
Pros
makes accuracy calculation logic more clear for player
player flanking enemies
enemies flanking player
moving prependicular to LoS makes the target harder to hit
more variety in behavior of different guns
more predictable low-accuracy shots
hurr realism
Cons
may be complicated to display in a good way
Additional context
Having a creature's direction can be potentially used for other systems later, such as stealth and similar.
May be expanded if different movement modes are introduced (crouching, crawling) - turning in non-standard modes may take more time, making creatures more prone to flanking.
When firing ranged weapons, player's accuracy is implicitly affected by the target direction: when switching to a different target, you lose steadiness depending on the angle between previous and the new target. That implementation is subpar, at the very least because it is a mechanic which is not clear to player. Personally I had no idea about it before I've read the ranged code, and I pretty sure most players are the same.
Describe the solution you'd like
Pros
Cons
Additional context
Having a creature's direction can be potentially used for other systems later, such as stealth and similar. May be expanded if different movement modes are introduced (crouching, crawling) - turning in non-standard modes may take more time, making creatures more prone to flanking.