Despite M2TW being around for all these years, I still saw a lot of differing opinions on the exact effects of armor upgrades. Setting out to satisfy my own curiosity I performed these tests. If they convince you as well, all the better.
I had heard primarily 3 theories about armor upgrades -
1. They gave +1 per level, just as the UI indicated
2. They gave +2 per level
3. They gave varying hardcoded amounts based on the commented-out table in export_descr_unit. The first upgrade is worth +4, and subsequent upgrades are worth either +1 or +2.
First I would test the kill rates against real armor by modding the armor stat in export_descr_unit. Then after I had a large sample size, I would revert armor to 0, apply upgrades, and see which real armor value they were the closest to.
The Setup:
Spoiler Alert, click show to read:
A ranged unit is the best way to test this, as there are no animations that add variables and get in the way of clear results.
The ranged unit:
-10 Men
-25 Ammo, for a total of 250 shots fired
-0.001 Projectile Accuracy
-1.0 Missile Accuracy vs Infantry (set in battle_config.xml)
The unit had 100% accuracy even over the ~200 range to the target. There was a very, very slim chance of a shot being wasted when two shots target the same soldier and the first shot kills him, which is why I made the shooter the smallest size possible vs the largest possible target. The total # of these occurrences was probably in the dozens despite over 100,000 shots fired.
The target:
-250 Men
-1.0/1.0 Formation Spacing
-No Officers
-0 mov_speed_mod. This caused visual glitches but successfully kept the test subject in place, and had no adverse effects on the test as far as I could see.
The map:
-Grassy Plains
-Clear Weather (reloaded whenever there was rain or fog)
-Approx. ~200 range from where the shooter and target spawn
The test:
I controlled 4 units of shooters against 5 AI test subjects. The AI kept the 5th general's unit back out of the fight, and placed the remaining 4 units in one line. I lined up the shooters across from them, told each to fire at their respective targets, then recorded their # of kills in the statistics screen and fought the battle again.
With perfect accuracy, the kill results should come exclusively from the combat damage formula and the modified attack/armour stats.
The results:
Spoiler Alert, click show to read:
6 tests (of 4) for a total of 24 values, with the 2 highest and 2 lowest results thrown out. Then calculate the Mean (bold) from the remaining 20 values.
The % after the bolded Mean is the "Kill Rate". This is the probability that an arrow striking its target will result in a kill. It's the Mean divided by 250.
The Range and the Standard Deviation show how consistent those test values are. Lower Range and Standard Deviation mean the results are more reliable. As you'll see, I retested certain values where the Standard Deviation was especially high. I had recorded Relative Standard Deviation thinking it would apply here, but apparently it didn't.
Attack 1
vs 0 Armour -
37*, 57, 64, 58, 52, 50, 51, 52, 53, 49, 60, 60, 64*, 58, 58, 63, 55, 56, 66*, 52, 62, 50, 48*, 60 = 56.00 or 22.40% with 15 Range, 4.55 SD
Attack 3
vs 0 Armour -
66, 66, 59, 57, 59, 64, 56, 70*, 60, 59, 58, 56, 53*, 73*, 62, 58, 59, 65, 47*, 61, 59, 68, 66, 61 = 60.95 or 24.38% with 12 Range, 3.57 SD
Attack 5
vs 0 Armour -
69, 75, 65*, 76, 69, 78, 74, 70, 80*, 77, 72, 69, 78, 71, 65*, 71, 70, 75, 76, 69, 68, 70, 83*, 72 = 72.45 or 28.98% with 10 Range, 3.26 SD
vs 1 Armour -
67, 63*, 68, 68, 72, 66, 75, 66, 68, 68, 80*, 62*, 66, 63, 66, 72, 66, 68, 63, 71, 76*, 68, 68, 75 = 68.20 or 27.28% with 12 Range, 3.23 SD
vs 2 Armour -
60, 69, 58, 71*, 67, 69, 66, 62, 69, 67, 69, 70*, 69, 70, 66, 48*, 55, 53, 52*, 67, 67, 65, 56, 66 = 64.50 or 25.80% with 17 Range, 5.13 SD
54, 68, 74*, 66, 60, 56, 54, 52*, 65, 59, 76*, 56, 71, 73, 58, 70, 48*, 65, 62, 68, 59, 69, 71, 64 = 63.40 or 25.36% with 19 Range, 5.93 SD
= 63.95 or 25.58% with 20 Range, 5.58 SD
vs 3 Armour -
54, 67*, 45, 51, 57, 55, 51, 55, 61, 52, 45*, 56, 44*, 66, 55, 67*, 55, 54, 51, 51, 55, 51, 45, 53 = 53.65 or 21.46% with 21 Range, 4.59 SD
51, 50, 54, 57, 63, 59, 63, 55, 48*, 71*, 63, 65*, 51, 63, 61, 49*, 62, 54, 55, 58, 56, 57, 54, 62 = 57.40 or 22.96% with 13 Range, 4.29 SD
= 55.53 or 22.21% with 21 Range, 4.82 SD
vs 4 Armour -
45*, 57, 53, 53, 54, 55, 68*, 48, 56, 61, 53, 63, 47, 52, 52, 58, 58, 52, 54, 45*, 49, 51, 63, 64* = 54.45 or 21.78% with 16 Range, 4.40 SD
vs 5 Armour -
44, 58*, 56, 49, 51, 46, 46, 48, 50, 46, 48, 38*, 52, 59*, 45, 37*, 48, 50, 44, 49, 43, 54, 44, 50 = 48.15 or 19.26% with 13 Range, 3.41 SD
vs 6 Armour -
39, 37, 42, 36*, 50, 52*, 41, 57*, 40, 48, 46, 44, 45, 46, 52, 47, 44, 40, 39, 51, 36*, 43, 44, 46 = 44.20 or 17.68% with 15 Range, 4.07 SD
vs 7 Armour -
45, 35, 42, 37, 32*, 43, 51*, 48, 33, 45, 39, 34, 40, 35, 36, 39, 46, 49*, 41, 35, 39, 45, 32*, 41 = 39.90 or 15.96% with 15 Range, 4.35 SD
vs 8 Armour -
43, 36, 33, 36, 32, 31*, 35, 34, 45*, 44, 49*, 37, 33, 44, 38, 36, 40, 32, 31, 27*, 38, 41, 41, 33 = 36.85 or 14.74% with 13 Range, 4.04 SD
vs 1 Upgrade (1) -
66, 66, 63, 68, 68, 63, 68, 61, 66, 73, 69, 69, 63, 82*, 62, 60, 60*, 61, 65, 78*, 68, 66, 56*, 75 = 66.00 or 26.40% with 15 Range, 3.83 SD
vs 2 Upgrade (1, 2) -
60, 49, 52, 45*, 61*, 56, 41*, 51, 62*, 57, 53, 48, 60, 57, 53, 53, 48, 55, 49, 49, 53, 55, 60, 60 = 53.90 or 21.56% with 12 Range, 4.07 SD
vs 3 Upgrade (1, 2, 3) -
34*, 46, 42, 43, 45, 47, 33*, 52*, 49, 48, 54*, 44, 40, 50, 49, 40, 46, 39, 43, 52, 44, 47, 39, 42 = 44.75 or 17.90% with 13 Range, 3.70 SD
vs 1 Upgrade (5) -
57, 59, 52*, 72, 62, 70, 57, 66, 52*, 76*, 62, 63, 60, 64, 71, 71, 65, 60, 69, 66, 61, 77*, 58, 65 = 63.90 or 25.56% with 15 Range, 4.70 SD
vs 2 Upgrade (5, 6) -
61, 61, 61, 66*, 57, 54, 55, 46*, 55, 53, 57, 65*, 59, 54, 53, 55, 51, 52, 50, 56, 54, 59, 47*, 54 = 55.55 or 22.22% with 11 Range, 3.20 SD
vs 3 Upgrade (5, 6, 7) -
46, 43, 43, 40, 46, 40, 47, 50, 41, 44, 38*, 51*, 55*, 38*, 49, 41, 41, 46, 49, 44, 39, 48, 46, 41 = 44.20 or 17.68% with 11 Range, 3.33 SD
Attack 5 +1 Weapon Upgrade
vs 0 Armour -
68, 73, 69, 72, 84, 70, 80, 91*, 87, 79, 76, 78, 78, 84, 81, 69, 70, 74, 63*, 75, 86, 71, 60*, 90* = 76.20 or 30.48% with 19 Range, 5.90 SD
74, 69, 65, 73, 77, 81*, 73, 88*, 65, 76, 66, 63*, 70, 80, 68, 77, 72, 62*, 68, 71, 70, 78, 78, 70 = 72.00 or 28.80% with 15 Range, 4.45 SD
= 74.10 or 29.64% with 22 Range, 5.63 SD
Attack 5 +9 Experience
vs 0 Armour -
66, 73, 75, 77, 67, 76, 92*, 76, 72, 81, 82, 70, 72, 78, 76, 83*, 81, 62*, 72, 62*, 74, 81, 74, 75 = 74.90 or 29.96% with 16 Range, 4.33 SD
Attack 5 + Fire Arrows
vs 0 Armour -
84, 74, 66*, 71, 74, 69, 79, 87*, 72, 69, 81, 83, 81, 75, 62*, 71, 73, 79, 70, 78, 85, 74, 79, 89* = 76.05 or 30.42% with 16 Range, 4.98 SD
Attack 7
vs 0 Armour -
86, 101*, 85, 79, 85, 83, 81, 70*, 85, 84, 75, 74, 89, 90, 77, 83, 75, 92*, 89, 85, 89, 72, 84, 70* = 82.50 or 33.00% with 18 Range, 5.32 SD
Attack 9
vs 0 Armour -
97, 84*, 88, 98, 94, 95, 91, 92, 89, 95, 99, 89, 87, 108*, 78*, 99, 95, 102*, 89, 85, 89, 94, 102, 87 = 92.70 or 37.08% with 17 Range, 4.67 SD
Conclusions and Observations:
Spoiler Alert, click show to read:
-Armor Upgrades are +2 Armour per level. The values of 1 Upgrade, 2 Upgrade, and 3 Upgrade are very near the values of 2 Armour, 4 Armour, and 6 Armour. 3 Armour Upgrades is extremely near the results of 6 Armour (rather than 3), so theory #1 is defunct. 1 Armour Upgrade is very near the results of 2 Armour (rather than 4), and there is no difference between the value of those upgrades (upgrade level 3 is the same as upgrade level 7), so theory #3 is defunct.
-There are no separate formulas for "Hit" and "Kill", there is only 1 damage formula. I had personally assumed there was a calculation to see if your attack exceeded the targets defense and, if it did, a separate calculation would fire to see if you had killed the target. That is not the case, and the more your attack exceeds the targets defense, the higher your chance to kill them. This might sound obvious to some, but it basically means that a 0 defense target will take more casualties from Attack 9 arrows than Attack 1 arrows (as the results clearly show).
-As a result of the above point, Missile Accuracy in battle_config.xml has a huge impact. Because there is only 1 damage formula, "Missile Accuracy" (which has nothing to do with actual projectile accuracy) is in fact a straight multiplier to the effectiveness of missiles. Increase this value, and even Attack 1 arrows will have a very high chance of killing targets in full plate armour. I didn't record the test, but with a Missile Accuracy of 10 (rather than 1), Attack 1 arrows were killing Armour 12 targets 100% of the time. This is a very important number that can differ quite a bit from mod to mod, I think without the knowledge of the mod devs.
-XP does not have an effect on missile "damage". Just like the UI indicates and most people probably assume. Accuracy was already set to 100% in these tests so it still may be possible that high XP archers are more accurate.
-Weapon Upgrades do not have an effect on missile damage. Just like the UI indicates.
-Fire Arrows do not seem have an effect on missile damage. I had heard (and believed) that the cons to lower accuracy and rate of fire was higher damage and morale damage, but that doesn't seem to be the case. The variance was high enough that it could be they get perhaps +1 attack, but that wasn't primarily what I was trying to confirm so I didn't test it again.
-Kill rates on 0 Armour targets are extremely low. Just an observation, you would think that if an arrow actually hit a 0 Armour target (which they all did in these tests), you'd have more than a 20-40% chance of killing them. Apparently not.
Thanks for reading and I hope these tests were useful to you. If you've noticed I did something wrong, or if I overlooked a variable, please let me know!
EDIT: I really wish the "Preview Post" actually previewed what the post will look like...formatting was correct in the preview, but it's quite messed up here. Hopefully everything will be still be readable.


Reply With Quote





