It's more of a design issue than if C2 can do it. C2 can pretty much do anything you need it to (in 2D).
It doesn't sound that hard to do. Especially if the ships are stable like in the game FTL. If you don't care that the weapon physically goes through the target and you flash something on the screen like "MISS" then that's WAY easier to accomplish.
One way I can think of is when doing the calculation you should have an overall modifier. So weapon1 has a 80% chance of hitting. Give that number a value out of 0-100 (100 means you will always hit, 0 means always a miss). Then check for other modifiers. Distance > 500? -10, distance >1000? -20. Enemy has cover? -20 Player has a gunner with >10 exp? +10
Figuring this out is a whole process of testing and balancing. Something you will probably modify up until the game is just about done. Meaning, it's going to change a lot!
Then when you have your final modified number (ToHitNumber), generate a random() number between 0-100 and see if its within your ToHitNumber. If it is, player hit the target, if not, player missed. Then you can do a similar process for how much damage you did.
basically D&D...