Jump to content

How shooter skill affects to hit chance


Abulafia

Recommended Posts

As part of an ongoing intention to sort out the weird to-hit chances in aftershock, I've been playing around with the to-hit formula in Excel. I've come up with the following, so far:

 

Each level of shooter skill has a multiplier associated with it. The multiplier is equal to 1.05 raised to the power of the skill level, so Average = 1, Good = 1.05, Very Good = 1.05^2 and so forth.

 

 

  • Awful 0.907029478
  • Poor 0.952380952
  • Average 1
  • Good 1.05
  • Very Good 1.1025
  • Excellent 1.157625
  • Heroic 1.21550625
  • Superheroic 1.276281563
  • SH+1 1.340095641
  • SH+2 1.407100423
  • SH+3 1.477455444
  • SH+4 1.551328216

What skill does is increase both the range FLT and the accuracy FLT by (modifier-1) times the base range of the weapon.

 

So an M4 carbine, range 40 accuracy 22 (giving a squad screen accuracy value of 22/40 = 55%) put in the hands of a "Good" shooter will become range 42 accuracy 24 (and show on the squad screen as +2.00 to range and +2% to accuracy, as it's nominal accuracy is now 24/42 = 57% ).

 

This is why skilled shooters show a lower bonus to accuracy on the squad screen with highly accurate weapons than inaccurate ones (as the range FLT and accuracy FLT values are much closer together) and also why sniper rifles become insanely accurate at high skill levels (as their accuracy FLT is being increased by a percentage of their massive range FLT).

 

As accuracy FLT is being increased, proportionally, faster than range FLT, this is why high skill levels contribute to the "100% accuracy bug". The to hit formula goes out the window when accuracy FLT is equal to, or greater than, range FLT, and starts giving 100% hit chances right out to maximum range.

 

Now I have shooter skill sorted out I'm well on my way to rebalancing weapons and weapon add ons to remove this effect. I've got a basic spreadsheet of all shooter skill levels and all weapons (I'm using WRB mod values as ACM has a lot more weapons in it!) showing their actual hit chances at various ranges. Over the next couple of days I'll put in some formulas to take gyros, compensators, ammo and sights into account, so I can tweak all the values so no possible combination of weapon, add ons, ammo and skill will make accuracy FLT exceed range FLT.

 

Cheers,

 

Abulafia

Link to comment
Share on other sites

I now have some pretty graphs illustrating how actual to hit chance varies as a percentage of the weapon's maximum original range, for Average and Heroic skill levels.

 

Note that "Squad Screen Accuracy" = accuracy FLT/range FLT and "Original Maximum Range" = range FLT, if you're modding.

 

https://www.freeimagehosting.net/uploads/eb80ba6dd7.jpg

 

https://www.freeimagehosting.net/uploads/8d1a48cb1e.jpg

Link to comment
Share on other sites

Bleh nothing is ever simple - there's a slight complication to what I thought was the formula, where skill very, very slightly increases effective range faster than maximum range most noticably for innacurate weapons being used by highly skilled soldiers.

 

The change is minimal (the maximum possible effect is with a superheroic +4 shooter using a 1% accuracy weapon, and in that scenario his adjusted accuracy is 42%, not 36% as the old formula predicted).

 

I'll redo the Heroic skill graph, shortly. The Average skill graph is still correct. I've also got a Superheroic+4 Graph to add in, which shows the maximimum possible effect of skill (you'll need a fully implanted and chipped cyborg with the appropriate bonus training to get to SH+4, but the effects are quite impressive).

 

Horrible numbers bit:

 

Ye gods. I don't think I can actually model the true accuracy calculation for skill, as the squad screen rounds displayed accuracy to 0 decimal places. I've got an approximate correction that seems out by less than 1%, so calculated scores and displayed values will be right after rounding. It's certainly close enough for effective weapon balancing.

 

For a skill factor Sk (from the initial table):

 

Adjusted Range FLT = Original Range FLT *Sk (as before, this is nice and simple)

 

Adjusted Accuracy FLT = a + ((1-Sk)r * (1.025+0.18x(x-0.2)))

 

where a = original accuracy FLT, r = original range FLT, x = 1-(a/r) (i.e. 1 - original squad screen accuracy expressed as a decimal)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...