Chance-to-Hit (CTH) - Part 2 of 2Headrock's "How does it work?" Part 4: Chance-to-Hit explains in quite some detail how the game calculates the player's chance to hit a target depending on various circumstances. |
To get the To-Hit bonus from a weapon or attachment, we'll need to have some values ready for us:
Item's To-Hit Bonus: Naturally, this is what we want to see added to our CTH at the end :) . We draw this straight from the XML.
Item's Best Laser Range: Most items that increase To-Hit bonus have a best laser range. This too is drawn from the XML data of the item.
Item's Bipod Bonus: Yup, this is where Bipods come in. We draw this data from XML too.
Is Shooter Prone?: This is either TRUE or FALSE. We'll want to know if the shooter is prone so we can decide whether to give him the Bipod Bonus. But this doesn't rely only on the shooter's stance - he must also be at least 5 tiles away from his target if he wants to get that bipod bonus!! If the effective range to the target is less than 5 tiles, then "Is_Shooter_Prone?" is FALSE, as far as this part of the program is concerned.
Let's get cracking. Here's the basic outline of the whole shebang:
Code:
It looks pretty simple, but then again we don't know how Laser_Bonus is calculated yet - it's not an XML value, we actually have to calculate it based on range, lighting, and a whole lot of other crap. We'll do that in a second. Please first pay attention - both laser bonuses are affected by the status of the gun or attachment giving those bonuses. It's a HARSH effect, meaning that if you go below 50% status, you start getting PENALTIES to your chance-to-hit, which is not good at all. Make sure you keep your lasers in good shape! Ammo and bipods do not rely on status.
If Shooter is Prone, then
Final_To-Hit_Bonus is increased by the Bipod_Bonus of the weapon's built-in bipod, if any.
Final_To-Hit_Bonus is increased by the Laser_Bonus of the weapon's built-in laser, if any (HARSH)
Final_To-Hit_Bonus is increased by the Ammo's To-Hit Bonus.
For each attachment, do:
If Shooter is Prone, then
Final_To-Hit_Bonus is increased by the Bipod_Bonus of the attachment
Final_To-Hit_Bonus is increased by the Laser_Bonus of the attachment (HARSH)
Now, let's see how all that laser business is calculated. Remember we're going to calculate this for the weapon and all of its attachments, one by one. We'll later feed the results back into the formula, where it says "Laser_Bonus" above. This is going to be a bit rough, but certainly not as nasty as the aiming calculations from earlier.
Code:
Great, some items and guns have a To-Hit bonus (or penalty) but no Best_Laser_Range. We treat those as flat modifiers, except we have to check it against the item's status when we return to the previous formula (remember? HARSH...)
Laser_Bonus = Item's_To-Hit_bonus (no changes!). Remember to check item status in the previous formula!Code:
If we're within laser range, our laser works perfectly. The bonus stays untouched, until we return to the previous formula and check it against the item's status. (HARSH, again...)
Laser_Bonus = Item's_To-Hit_bonus (no changes!). Remember to check item status in the previous formula!
Now things get messy.
Code:
Ok, that's not even nearly as ugly as it looks in the code. Here's a rare occassion to look at something really scary. This is the same equation, but DIRECTLY out of the code.
Maximum_Laser_Range = Item's_Best_Laser_Range * ( (2 * Brightness_At_Target_Location) + 21 ) / 18Code:
Ack. Well, in truth, the two are exactly the same. The reason mine's about half as long is that all those capital-letter names like NORMAL_LIGHTLEVEL_DAY are fixed values which the programmers can change if they ever need to. But in the end, assuming no changes are made to these values, my pseudo-code is correct.
Now let's pretend I never showed you that thing.
Right. So now we have the maximum range at which the laser pointer can be seen, based on the light level at the target tile. If the target is within that "maximum" laser range, we can still get a few to-hit bonus points from the laser, albeit less than the full amount. (we'll do that next)
Note that the light level is NOT what you see in-game when you press the F button. It's actually the opposite! In daylight, the light level of tiles is usually 3, and at night it is usually 12. So the higher, the darker! Weird, huh? It works like that throughout the whole game... EXCEPT when you press "F" to see the brightness level, in which case the program lies to you. Of course, the lie is intentional, because most of us would associate a LOWER level with LOWER light, and vice versa. We're just strange little humans. The program itself works the other way around - the higher the value, the darker it is! I guess they should've called it "DARKNESSLEVEL".
In any case, you can clearly see (now that I've explained this weirdness) that the darker the tile, the easier it is to see the red laser dot, and so the maximum range of the laser pointer will grow, for the purposes of shooting targets beyond the laser's original Best_Laser_Range. Of course, beyond the best_laser_range we're going to lose some of the laser's to-hit bonus, but as long as the target's withing the Max_range, we'll still get a few points.
Now, let's see how far outside the laser's best range we are, and how much Laser_Bonus we get, if any.
Code:
In effect, each tile of range beyond our Best_Laser_Range will decrease the bonus we were supposed to get from the laser. Dark conditions help, of course, because we're using Maximum_Laser_Range as well, which we've just calculated based on light levels. If the target is beyond the Maximum_Laser_Range, we'll get a result of 0 or less.
Finally, the program makes sure that we don't get a PENALTY:
Code:
This is interesting to know - Laser_Bonus is a HARSH bonus, which means that if the laser's status is below 50%, it could give a penalty instead of a bonus. However, if the Laser_Bonus we've just calculated is 0 (meaning, we can't see the laser dot because the target is too far out of range), then we won't get a penalty either (negative 0 is still 0). So if the target is out of laser range, you don't get a penalty for using a broken laser. Realistic! :D
Laser_Bonus = 0.
Let's have a quick example here, just to make sure all this is understood:
Shooter is using a regular laser attachment, with 90 Best_Laser_Range, supposed to give a 20-point To-Hit Bonus. Target is 12 tiles away, in daylight (Brightness... errrr... darkness level 3).
If the item has no Best_Laser_Range, then
Laser_Bonus = Item's_To-Hit_bonus (no changes!). Remember to check item status in the previous formula!
No, the item has a best_laser_range, so we skip this. Next.
If the Effective_Range is less than or equal to the item's Best_Laser_Range, then
Laser_Bonus = Item's_To-Hit_bonus (no changes!). Remember to check item status in the previous formula!
No, the Effective_Range is 120 (12 tiles) and the laser range is 90, so we skip this.
If Effective_Range (120) is greater than the item's Best_Laser_Range (90), then
Maximum_Laser_Range = 90 * ( (2 * 3) + 21 ) / 18 = 135
The Great, so we're a bit out of range, the tile's not too dark, so we can still use the laser pointer effectively up to range 135. Let's move on:
Laser_Bonus = ( 20 * ( 135 - 120 ) ) / ( 135 - 90 ) = 6.666 (rounded down to 6).
So the final Laser_Bonus is 6. Much less than we should get from the laser, but of course we're a bit out of laser range.
All of the laser bonuses we've just calculated are added up to our Actual_Chance. Again, remember that the status of your laser will affect how much bonus you get from that laser, and you will get a penalty if the status is below 50%.
Next up are modifiers based on the bodypart we're trying to shoot.
Code:
When shooting at the head, we lose three CTH points per tile of effective distance. Remember that effective distance takes Camo and obstacles into account.
Bodypart_Penalty = 3 * Effective_Range / 10
Actual_Chance is reduced by Bodypart_PenaltyCode:
When shooting at the legs, we lose 1 CTH point per tile of effective distance.
Bodypart_Penalty = Effective_Range / 10
Actual_Chance is reduced by Bodypart_Penalty
Now, the range to target really kicks in. We're going to rely on our weapon's Range value (which is drawn from XML). We'll compare it to the range to target. If the target is beyond range, we're going to start losing lots of CTH.
Code:
What we do is to check the difference between the weapon's inherent range (the value we see in the description box, drawn out of the XML files) and the range to the target (unmodified, not the "Effective_Range"). If the weapon's range is larger or equal to the range_to_target, then there's no problem - the penalty is positive (or 0), and is then ignored. However, if the target is beyond the weapon's natural range, the penalty gets bigger.
If Range_Penalty is a negative value, then
Actual_Chance is reduced by Range_Penalty
Please note that this isn't the only range modifier. If the target is out of range, we're going to get a HUGE hit to our CTH soon.
But first thing's first, let's have two examples on this:
First, we'll use a sniper rifle. The rifle has a range of 75 tiles (750 meters), and the range to target is 60 tiles (600 meters)
Range_Penalty = ( (750 - 600) * 30 ) / 170 = 26.4
Range_Penalty is a positive value - that's a good thing, because it means we've got no problems with range. Our target is within the weapon's range, and the program skips this bit altogether. No penalty.
Second example, we'll shoot a pistol with a range of 11 tiles (110 meters) at a target standing at 13 tiles (13 meters)
Range_Penalty = ( (110 - 130) * 30 ) / 170 = -3.5
Ok, this time we've actually got a penalty of -3.5 points. Since it's a negative value, it's subtracted from the Chance-to-Hit. We've lost 3.5 points of CTH, and we're going to lose a lot more than that later.
Here's a bit that restricts shooting for tanks, at close range. Tanks have a problem firing at enemies who are very close, and this is where it gets calculated:
Code:
The normal sightrange is not a fixed number - you can set it in your JA2_Options.INI file. The default is 13. Therefore, if the target is less than 26 tiles
Tank_Closerange_Penalty = 2 * ( (2 * Normal_Sight_Range in tiles) - Range_to_Target in Tiles )
Actual_Chance is reduced by Tank_Closerange_Penalty
away, the tank gets a penalty to his shooting.
Code:
Heh, this is funny. The effective range only equals 0 if we don't have a clear line-of-sight to the target, or if we're using a seriously damaged scope. It means that we're trying to shoot blindly, and so our chance-to-hit drops considerably. I think it's just making sure we don't actually hit the target, no matter how good we are :)
Actual_Chance is reduced by 80!!!
Now we're going to do something interesting.
Code:
This universal modifier is a curious little bugger. It gives a 3 point bonus or penalty to CTH, based on the how much closer, or farther, the target is from the NORMAL_RANGE. But what is "Normal_Range"? Well, this is a fixed value set up by the JA2 programmers. In 1.13, the NORMAL_RANGE is 90 meters (9 tiles). That means that any target beyond 9 tiles is harder to hit, and any target closer than 9 tiles is easier to hit. Each tile of difference gives 3 points in bonus or penalty as required. Theoretically, chancing the Normal_Range would make the game behave differently. If you set it to 200 (20 tiles), then it will be much easier to hit stuff at long range, and MUCH easier to hit people who are very close to you! On the other hand, if you set it to 10 (1 tile) then shooting becomes much more difficult, even at people standing close to you. There is no current option to change the NORMAL_RANGE, other than editing the code.
Actual_Chance is increased/reduced by Universal_Range_Penalty
We're going to check and see whether the shooter and his target are on different levels of the map, and apply penalties/bonuses as appropriate.
Code:
Shooting up to the roof is tricky. Shooting down from a roof is easy. 'Nuff said.
Actual_Chance is increased by 15
If Shooter is on the ground, and Target is on the roof, then
Actual_Chance is decreased by 25
We're going to have a look at our target now, to see what they are doing. The stance of the target, compared to the stance of the shooter, is going to affect our aim. Let's do this one by one, covering all three stances, STANDING, CROUCHING, and PRONE.
Code:
Ok, the penalty for shooting at a standing target only happens if the shooter is prone, and the range is 5 tiles or less.
If Range_to_Target is 5 tiles or less, and Shooter is PRONE, then
If we're not shooting at any particular bodypart, then
Targetted_Bodypart = 2 (TORSO)
Bodypart_Penalty = (5 - Targetted_Bodypart - Range_To_Target in Tiles) * 10
Actual_Chance is reduced by Bodypart_Penalty
Targetted_Bodypart is a numeric value, where 1 = Head, 2 = Torso, and 3 = Legs. Range_To_Target is always 5 or less, because we only get to this calculation if we're within 5 tiles range.
Examples:
At range 2, shooting at the head (1):
Bodypart_Penalty = (5 - 1 - 2) * 10 = 20
At range 3, shooting at the Torso (2):
Bodypart_Penalty = (5 - 2 - 3) * 10 = 0
What's really weird is that you can actually get a bonus as well, especially if range is close to 5 tiles and shooting at the legs.
At range 4, shooting at the Legs (3):
Bodypart_Penalty = (5 - 3 - 4) * 10 = -20
It's negative, but because Actual_Chance is reduced by this, we get a bonus to CTH! So when prone, go for the legs!
Also note that in the code above, there's the bit that checks if we're not shooting at any particular bodypart. I think this happens when we're shooting at a prone target, but it also appears that it happens when shooting at a creature's glands (I.E., shooting them from behind?). In both cases, the game considers the shot to be aimed at the torso, for purposes of this calculation.
CROUCHING:
Code:
Ok, that's a bit complex.
If Shooter is a Tank, and Range_to_Target is less than 120 meters (12 tiles) then
Tank_Penalty = 13 * ( 120 - Range_to_Target ) / 10
else
If Range_to_Target > 86 (???), then
Actual_Chance is reduced by 20
If Range_to_Target is between 16 and 86 (???), then
Closerange_Penalty = 3 * ( (Range_to_Target - 16) / 10 )
Actual_Chance is reduced by Closerange_Penalty
First, tanks get a penalty for shooting at crouched targets that are closer than 12 tiles.
If the shooter isn't a tank, then it's a bit weird there. Note that I'm not sure about 86, it's quite possible that the value here should be 182, as I may have read the calculation wrong. In any case, if the target is crouched and beyond this range (in METERS, not tiles), then we lose 20 points from our CTH.
However, if the target is closer than this range, but more than 1 tile away (16 meters... ok, 1.6 tiles away, geez), then we lose 3 points from CTH for each tile of distance.
PRONE:
Code:
It's almost the same as crouched, with a few differences.
If Shooter is a Tank, and Range_to_Target is less than 120 meters (12 tiles) then
Tank_Penalty = 25 * ( 120 - Range_to_Target ) / 10
else
If Range_to_Target is greater than 16 meters (1.6 tiles), then
Closerange_Penalty = 3 * ( (Range_to_Target - 16) / 10 )
If Closerange_Penalty > 40, then
Closerange_Penalty = 40
Actual_Chance is reduced by Closerange_Penalty
Tanks suffer twice as much penalty for shooting at prone targets less than 12 tiles away. That's good to know - next time you charge at a tank, stay low and close!
As to other shooters, if you're prone and the target is prone and more than 1.6 tiles away, you will suffer a penalty of 3 points per tile. This penalty can't go over 40.
Next up, we take another drop of CTH based on how many tiles the target has moved during their turn:
Code:
So we get 1.5 points penalty for each tile the target has moved during its turn, but no more than 30. Note that the "Tiles_moved" value is reset at the start of the target's next turn, so it includes any tiles moved during interrupts. I think that if the target stops to do something other than move, the value is NOT reset, so it's the total tiles moved during the turn, regardless of other actions performed.
If Target_Movement_Penalty > 30, then
Target_Movement_Penalty = 30
Actual_Chance is reduced by Target_Movement_Penalty
Next up, bullet-dodging!!! Yes, indeed, you can dodge bullets. An agile target causes a drop in the shooter's CTH. However, the shooter can compensate for this if his Dexterity is high. This is one of the reasons why dexterity is important for shooting.
Code:
There's an odd bit here but we'll get to it. If the target is aware of the shooter, they have a chance to try and dodge the bullet, by spotting the shooter preparing to fire, and trying to duck out of the way. Of course, tanks can't dodge out of the way, and the queen is apparently so good that her shots can't be dodged.
Dodging_Penalty = (Target's_Effective_Agility / 5) + (Target's_Effective_Experience_Level * 2)
If Target is CROUCHED, then
Dodging_Penalty is reduced by 1/3
If Target is PRONE, then
Dodging_Penalty is reduced by 2/3
Dodging_Compensation = (Shooter's_Effective_Dexterity / 5) + (Shooter's_Effective_Experience_Level * 2)
If Target is a Tank (?????), or Shooter is not the Bug Queen (?????), then
Dodging_Compensation is cut in half!
If Dodging_Penalty is greater than Dodging_Compensation, then
Actual_Chance is reduced by (Dodging_Penalty - Dodging_Compensation)
The dodging_penalty is based on the target's agility and experience level. To understand what the "EFFECTIVE" values are, please read the beginning of this topic, where this is explained.
Crouched targets are less likely to dodge, and prone targets will find it very hard to dodge.
The shooter's dexterity and level form the Dodging_Compensation. Again, these are EFFECTIVE levels, which are based on stuff like injury.
There's a strange bit here - the program tests to see whether the shooter is the Bug Queen, or the target is a Tank. However, the way the code is written, we won't even get to this point if either case is true! So this command (cut Dodging_Compensation in half) is never executed. Someone should take a look at this and fix it!!!
In any case, at the very end, the two values are compared. If the Dodging_Compensation is higher than the Penalty, that means the shooter is so good he can keep tracking the target even if it tries to dodge out of the way. If the penalty is higher, the target manages to reduce the shooter's CTH. The severity of the reduction depends on the difference between the Penalty and the Compensation, so the more skilled the target is, the more penalty it gives to the shooter!
There's a short bit here that gives range penalties to tanks that aren't firing directly at any target. Tanks sometimes do this if they know roughly where you are - they shoot close to you and hope to hit you in their area-of-effect.
Code:
This is similar to other tank penalties we've seen before. It's not a repeated penalty though, because earlier we were only talking about situations where the tank is firing at somebody, and this line is only executed if the tank isn't firing at anyone in particular.
Tank_Penalty = 25 * ( 120 - Range_to_Target_Tile ) / 10
We've already factored injury and fatigue into the calculation much earlier, but they're going to be calculated again, and may have a powerful impact on our CTH.
Code:
That's very confusing, of course. It's a lot of math, and I won't go too deeply into it. In practice, you get a drop to CTH based on your injury, meaning how much health you've got now compared to the maximum your merc can have. Bandaged damage is half as hurtful as unbandaged damage. Finally, your experience level helps compensate for the penalty, so experienced mercs will suffer less from injury.
Bandage_Value = Amount of Shooter's health that is currently bandaged (pink)
Injury_Penalty = Actual_Chance * 2 * ( Soldier's_Health_Below_Maximum + (Bandage_Value / 2) ) / (Soldier's_Maximum_Health * 3)
Final_Injury_Penalty = Injury_Penalty * ( 100 - ( (Shooter's_Effective_Experience_Level - 1) * 10 ) ) / 100
Actual_Chance is reduced by Final_Injury_Penalty
Here's one of the most important penalties of them all. Ever notice how, when shooting at someone who is JUST outside your gun's range, your CTH is significantly lower? This is where it happens:
Code:
Even one tile more than the gun's range, and you lose half your remaining CTH. The programmers say this is due to "bullet drop", but seriously, it's ridiculous. We've already had penalties for being out of range, and this one isn't even scaled - once you're just one tile out of range, you lose 50% of what little CTH you had left?! Hmpf.
Actual_Chance is cut by half!
Here's another CTH hit:
Code:
This happens when one soldier spots an enemy, and another soldier (who can't see the enemy) takes a shot. The calculation doesn't depend on whether the shooter can see the target right now, but whether he COULD see it if he turned in that direction and aimed his weapon. This bit of the code is the reason why Snipers need a good scope - otherwise their CTH will suck when firing at enemies they can't actually see.
Actual_Chance is cut by half!
Believe it or not, we've reached the very end of the formula. There's just one more thing left to do:
Code:
OMG, this is the most annoying piece of code I have ever seen in my life. This is one of the reasons why I've been upset at JA2 for so long, especially once I started messing with XMLs to try and change the way that guns behave.
Actual_Chance = 1.
End.
What this piece of code means is that CTH can NEVER EVER EVER EVER drop below 1%. You could be firing a pistol from the other end of the map, and it will have 1% chance of hitting the target. 1 in 100 shots is therefore guaranteed to hit the enemy, and with a good automatic weapon you can fire 100 shots within a couple of turns. Conversely, the enemy has a minimum of 1% too, and they tend to fire a whole lot of bullets, often without any realistic chance to hit you, but they still hit you anyway. Of course, if there are obstacles along the way they might stop the bullet, but on a clearer map with fewer obstacles you can actually hit from one side of the map to the other, 1 out of 100 times. This was made even worse by the fact that the program didn't use to really randomize numbers - it's complicated, but it was possible for the program to choose several numbers and only randomize between them, which meant that the minimum chance-to-hit was actually BETTER THAN 1/100 in some cases!!! Fortunately, SpaceViking has fixed the random number generator in the latest SVN builds.
I've actually managed to change the code and reduce the minimum CTH to 1/1000, and I can now change it to whatever I like, too. This isn't in the release version of 1.13, but I hope that some day this will be changed.
And that's it! The Actual_Chance value at this point is the Chance-to-Hit for the shot.
Please feel free to ask any questions about this.
CONCISE LIST OF THINGS THAT HELP/HURT CHANCE-TO-HIT
As suggested by Moroes.
Things that help Chance-to-Hit
- Marksmanship, Dexterity, Wisdom, Experience Level
- Always helpful
- Scope
- Mostly helpful, especially if it's a high-power scope. Doesn't help if you're too close to the target (based on the scope's Minimum_Range_For_Aiming_Bonus).
- Weapon, worn gear, and attachment condition
- Always helpful to keep items repaired, at least above 85%. At 50% or less, you risk getting penalties instead of bonuses.
- Morale
- Always helpful to keep this at 50% or higher
- Shooting a second time at the same target
- This is, assuming that the target hasn't moved since the last time you shot at it.
- PSYCHO trait
- Always good for CTH (although not always good for the actual shooting process...)
- Crouched or Prone stances
- Always good, although the closer the enemy, the less benefit you get from these stances.
Also, at very close range, Prone shooters should concentrate on the enemy's legs.
Also, when using a high-powered scope, lie prone.
When using a bipod, lie prone.
- Always good, although the closer the enemy, the less benefit you get from these stances.
- Weapon accuracy
- It helps both CTH and the maximum bonus from aiming. More important if the weapon has a scope, less if it doesn't.
- Range
- Always good to keep the target at less than the weapon's effective range. If using a scope, try to keep the target at a range higher than the scope's Minimum_Range_For_Aiming_Bonus.
Also, when crouched or prone, without a scope, try to keep the enemy about 4 or 5 tiles away, but no more than 5. You get a good bonus that way.
Also, engagements at 9 tiles or less are always more accurate.
- Always good to keep the target at less than the weapon's effective range. If using a scope, try to keep the target at a range higher than the scope's Minimum_Range_For_Aiming_Bonus.
- Ambidextrity trait
- For shooting two handguns/SMGs at the same time.
- Free second hand
- When shooting a single handgun, gives a small bonus. This means don't put anything in the other hand.
- Auto-Weapons trait
- Great for bursts and auto-fire.
- Heavy-Weapons trait
- Good for rocket-launchers.
- Sniper trait
- Good for increasing the maximum aiming bonus possible.
Also decreases the "effective" range to target.
- Good for increasing the maximum aiming bonus possible.
- Spend extra AP to aim
- Helpful, up to a certain number of APs. Only very good marksmen will benefit from the last few APs spent, when using a high-powered scope.
- Good quality laser, in the darkness
- Darkness increases the laser's effective range.
- EASY difficulty level
- Enemies get lower CTH at easier difficulty, of course.
- Higher weapon range
- Always helpful
- Close range to a tank
- The closer you get to a tank (preferably under 12 tiles), the less chance it has to hit you.
- Shooting from the roof to targets on the ground
- A cool +25 for that.
Things that reduce chance-to-hit
- Injury or bandages
- Always bad for CTH. Bandages ("pink" health) have less effect than bleeding damage ("yellow" health).
- Item condition below 85%, or below 50%.
- Item condition below 85% will reduce the effectiveness of the item (weapon, or a bonus-giving attachment).
With many weapons and attachments, condition below 50% may start giving penalties, so avoid it.
- Item condition below 85% will reduce the effectiveness of the item (weapon, or a bonus-giving attachment).
- Drunkeness
- Always bad for you. Hangovers have no effect though.
- Low Morale
- Anything below 50% morale is bad for you.
- Fatigue
- Anything below 85% fatigue is bad for you.
- Standing or Crouching while using a high-powered scope
- If the scope gives +15 aiming_bonus or more, you get a penalty when standing or crouching. Standing is obviously worse.
- When firing and SMG, holding an item in the second hand
- Gives a penalty. Try to keep both hands free for SMGs.
- High burst penalty
- When firing on burst/full-Auto modes. The more bullets are fired, the less likely they are to hit.
- EXPERT or INSANE difficulty levels
- Enemies get a bonus to CTH in these difficulty settings.
- Being gassed
- Always very bad for your CTH, unless you're wearing a mask.
- Being bandaged by another merc
- A somewhat serious impact on CTH.
- Shock from being hit
- Shock remains for a couple of turns after being hit. The worse you were hit, the lower your CTH will be.
- Shooting at the head or legs
- Much harder to hit than shooting at the torso, but of course there are benefits to this.
- Target outside effective weapon range
- Gives a huge penalty to CTH. You'll usually need a good scope to counteract this.
- Obstacles, enemy camouflage, and smoke
- They will all increase the "Effective range to target", making it harder to hit.
- Shooting from the ground to the roof
- A small but noticeable penalty.
- Shooting at a target's head or torso, while the shooter is prone and at close range (up to 5 tiles).
- Penalty for these.
- CROUCHED or PRONE target
- Will reduce your chance to hit considerably, especially at long-range
- Moving target
- The more your target has moved during its turn, the harder it is to hit
- Agile/Experienced target
- Decreases your CTH unless you're equally skilled.
- Not being able to see the target
- Huge penalty to CTH.
Things you can do to avoid getting hit
- High agility and Experience Level
- They help considerably to reduce the shooter's CTH.
- Crouched/Prone stance
- They help, especially at long range. Not very helpful at short range.
- Stay outside enemy's effective range
- Of course, you would need to know their weapon's range for that...
- Camouflage, cover, and smoke
- All will increase the enemy's Effective_Range value
- Injure the enemy
- Will increase their injury, fatigue, and shock penalties.
- Gas the enemy
- Assuming he isn't wearing a gas-mask.
- If enemy is a tank, stay close and low
- If you have to get close to a tank, try to get as close as possible, as fast as possible. Below 12 tiles of range, the tank begins to take serious penalties, especially if you're crouched or prone.
- Get up on a roof
- This decreases his chance to hit you, and increases your chance to hit him.
- Move around!
- The more you move during your turn, the less chance the enemy has to hit you.
- High agility and experience level
- Will help you dodge bullets... assuming the enemy isn't very skilled



del.icio.us
Digg