I don't know how your script is structured, but if you're having difficulty modifying it to handle jams, perhaps you could instead preprocess the log by filtering out the jams.
My script is written in perl, so I believe it should be relatively easy to have it recognize the phrase "...through the [small/large/etc] [material]..." instead of just "through" to determine hits. This should prevent confusion from jams or anything else that I haven't thought of. I messed this up on my previous attempt (and caused the script not to work at all), but I hope to have another go this weekend. If it doesn't work I might try filtering out jams, as you suggested.
I noticed some more strangeness with [SHOOT_FORCE:35] data. For some reason, there are
less deflections against steel for [SHOOT_FORCE:35] than [SHOOT_FORCE:26]. I reran the [SHOOT_FORCE:26] set without chain mail, with the same conditions I just used to make sure there isn't some other difference besides [SHOOT_FORCE]
ammo | armor | hits | kills | hits/kill | hits/fall | hits/KO | %through | %deflected | %serious | %bruised |
adamantine | adamantine | 77150.00 | 565.00 | 76.84+/-2.35 | 16.29+/-0.52 | 16.67+/-0.50 | 0.00 | 1.00 | 0.00 | 0.00 |
bronze | adamantine | 77118.00 | 584.00 | 76.22+/-2.56 | 14.50+/-0.46 | 14.92+/-0.47 | 0.00 | 1.00 | 0.00 | 0.00 |
copper | adamantine | 77039.00 | 572.00 | 76.97+/-2.60 | 14.93+/-0.51 | 15.08+/-0.49 | 0.00 | 1.00 | 0.00 | 0.00 |
iron | adamantine | 77090.00 | 592.00 | 81.52+/-2.64 | 15.13+/-0.52 | 15.32+/-0.49 | 0.00 | 1.00 | 0.00 | 0.00 |
silver | adamantine | 77265.00 | 570.00 | 78.98+/-2.40 | 15.20+/-0.50 | 15.73+/-0.51 | 0.00 | 1.00 | 0.00 | 0.00 |
steel | adamantine | 77154.00 | 549.00 | 75.50+/-2.41 | 14.49+/-0.47 | 15.00+/-0.49 | 0.00 | 1.00 | 0.00 | 0.00 |
bone | adamantine | 28587.00 | 864.00 | 36.28+/-0.91 | 17.87+/-0.70 | 18.15+/-0.69 | 0.50 | 0.50 | 0.50 | 0.00 |
tower_cap | adamantine | 28758.00 | 864.00 | 36.47+/-0.96 | 17.14+/-0.64 | 18.84+/-0.85 | 0.49 | 0.51 | 0.49 | 0.00 |
adamantine | bronze | 14773.00 | 864.00 | 19.09+/-0.58 | 1.78+/-0.04 | 4.41+/-0.20 | 1.00 | 0.00 | 1.00 | 0.00 |
bronze | bronze | 12896.00 | 864.00 | 16.66+/-0.49 | 1.80+/-0.04 | 2.85+/-0.09 | 1.00 | 0.00 | 1.00 | 0.00 |
copper | bronze | 12985.00 | 864.00 | 16.74+/-0.50 | 1.70+/-0.03 | 2.75+/-0.09 | 1.00 | 0.00 | 1.00 | 0.00 |
iron | bronze | 13151.00 | 864.00 | 16.92+/-0.49 | 1.69+/-0.03 | 2.80+/-0.09 | 1.00 | 0.00 | 1.00 | 0.00 |
silver | bronze | 13017.00 | 864.00 | 16.83+/-0.52 | 1.70+/-0.03 | 2.71+/-0.08 | 1.00 | 0.00 | 1.00 | 0.00 |
steel | bronze | 13354.00 | 864.00 | 17.23+/-0.54 | 1.69+/-0.03 | 2.97+/-0.10 | 1.00 | 0.00 | 1.00 | 0.00 |
bone | bronze | 15432.00 | 864.00 | 19.48+/-0.58 | 1.82+/-0.04 | 4.01+/-0.16 | 1.00 | 0.00 | 1.00 | 0.00 |
tower_cap | bronze | 78565.00 | 564.00 | 76.73+/-2.50 | 15.72+/-0.49 | 16.26+/-0.50 | 0.02 | 0.98 | 0.02 | 0.00 |
adamantine | copper | 14774.00 | 864.00 | 19.07+/-0.53 | 1.83+/-0.04 | 3.86+/-0.15 | 1.00 | 0.00 | 1.00 | 0.00 |
bronze | copper | 12207.00 | 864.00 | 15.76+/-0.49 | 1.73+/-0.04 | 2.95+/-0.09 | 1.00 | 0.00 | 1.00 | 0.00 |
copper | copper | 13100.00 | 864.00 | 16.90+/-0.53 | 1.75+/-0.03 | 2.72+/-0.09 | 1.00 | 0.00 | 1.00 | 0.00 |
iron | copper | 13494.00 | 864.00 | 17.40+/-0.53 | 1.76+/-0.03 | 2.88+/-0.10 | 1.00 | 0.00 | 1.00 | 0.00 |
silver | copper | 11923.00 | 864.00 | 15.39+/-0.47 | 1.71+/-0.03 | 2.67+/-0.08 | 1.00 | 0.00 | 1.00 | 0.00 |
steel | copper | 13194.00 | 864.00 | 17.01+/-0.51 | 1.76+/-0.04 | 2.99+/-0.09 | 1.00 | 0.00 | 1.00 | 0.00 |
bone | copper | 14840.00 | 864.00 | 18.71+/-0.55 | 1.85+/-0.04 | 4.17+/-0.18 | 1.00 | 0.00 | 1.00 | 0.00 |
tower_cap | copper | 78497.00 | 604.00 | 80.09+/-2.34 | 15.44+/-0.48 | 16.10+/-0.49 | 0.02 | 0.98 | 0.02 | 0.00 |
adamantine | iron | 14144.00 | 864.00 | 18.33+/-0.54 | 1.84+/-0.04 | 4.32+/-0.18 | 1.00 | 0.00 | 1.00 | 0.00 |
bronze | iron | 18683.00 | 864.00 | 24.17+/-0.58 | 9.00+/-0.28 | 10.21+/-0.34 | 0.67 | 0.33 | 0.67 | 0.00 |
copper | iron | 18426.00 | 864.00 | 23.85+/-0.57 | 8.82+/-0.29 | 10.15+/-0.34 | 0.67 | 0.33 | 0.67 | 0.00 |
iron | iron | 25522.00 | 864.00 | 33.00+/-0.84 | 16.52+/-0.61 | 16.84+/-0.65 | 0.49 | 0.51 | 0.49 | 0.00 |
silver | iron | 12870.00 | 864.00 | 16.57+/-0.49 | 1.84+/-0.04 | 2.84+/-0.09 | 0.99 | 0.01 | 0.99 | 0.00 |
steel | iron | 13114.00 | 864.00 | 16.88+/-0.52 | 1.72+/-0.03 | 2.90+/-0.09 | 1.00 | 0.00 | 1.00 | 0.00 |
bone | iron | 14935.00 | 864.00 | 18.84+/-0.55 | 1.85+/-0.04 | 4.04+/-0.18 | 1.00 | 0.00 | 1.00 | 0.00 |
tower_cap | iron | 78748.00 | 565.00 | 78.20+/-2.43 | 15.42+/-0.50 | 15.91+/-0.49 | 0.02 | 0.98 | 0.02 | 0.00 |
adamantine | silver | 14181.00 | 864.00 | 18.29+/-0.53 | 1.87+/-0.04 | 3.92+/-0.16 | 1.00 | 0.00 | 1.00 | 0.00 |
bronze | silver | 12998.00 | 864.00 | 16.78+/-0.52 | 1.70+/-0.03 | 2.73+/-0.08 | 1.00 | 0.00 | 1.00 | 0.00 |
copper | silver | 13078.00 | 864.00 | 16.85+/-0.51 | 1.72+/-0.04 | 2.84+/-0.09 | 1.00 | 0.00 | 1.00 | 0.00 |
iron | silver | 12919.00 | 864.00 | 16.65+/-0.51 | 1.72+/-0.03 | 2.94+/-0.10 | 1.00 | 0.00 | 1.00 | 0.00 |
silver | silver | 12410.00 | 864.00 | 16.00+/-0.50 | 1.68+/-0.03 | 2.61+/-0.07 | 1.00 | 0.00 | 1.00 | 0.00 |
steel | silver | 13006.00 | 864.00 | 16.77+/-0.49 | 1.74+/-0.04 | 2.80+/-0.08 | 1.00 | 0.00 | 1.00 | 0.00 |
bone | silver | 14891.00 | 864.00 | 18.83+/-0.53 | 1.79+/-0.04 | 3.98+/-0.16 | 1.00 | 0.00 | 1.00 | 0.00 |
tower_cap | silver | 78269.00 | 600.00 | 81.58+/-2.47 | 15.82+/-0.50 | 16.29+/-0.49 | 0.02 | 0.98 | 0.02 | 0.00 |
adamantine | steel | 14539.00 | 864.00 | 18.73+/-0.53 | 1.81+/-0.04 | 3.89+/-0.15 | 1.00 | 0.00 | 1.00 | 0.00 |
bronze | steel | 76347.00 | 624.00 | 80.38+/-2.52 | 14.80+/-0.52 | 15.62+/-0.54 | 0.55 | 0.45 | 0.00 | 0.55 |
copper | steel | 27609.00 | 864.00 | 35.82+/-0.89 | 16.32+/-0.57 | 16.70+/-0.58 | 0.50 | 0.50 | 0.30 | 0.19 |
iron | steel | 76540.00 | 591.00 | 78.51+/-2.35 | 14.60+/-0.48 | 14.90+/-0.47 | 0.54 | 0.46 | 0.00 | 0.54 |
silver | steel | 24729.00 | 864.00 | 31.96+/-0.86 | 15.86+/-0.61 | 16.52+/-0.66 | 0.48 | 0.52 | 0.47 | 0.01 |
steel | steel | 76514.00 | 582.00 | 78.75+/-2.43 | 15.20+/-0.52 | 15.75+/-0.52 | 0.53 | 0.47 | 0.00 | 0.53 |
bone | steel | 21346.00 | 864.00 | 27.16+/-0.64 | 9.96+/-0.32 | 12.05+/-0.40 | 0.93 | 0.07 | 0.67 | 0.26 |
tower_cap | steel | 78826.00 | 558.00 | 77.58+/-2.38 | 15.44+/-0.53 | 16.01+/-0.54 | 0.02 | 0.98 | 0.02 | 0.00 |
It appears that the difference is real, and there actually are less deflections off steel at Force 35 than Force 26. I feel like I'm being dyslexic or something, as I am totally confused as to how this could possibly be.
I do have one thought - maybe at lower force the targets take longer to kill after they have fallen over. I haven't quantified this, but I've noticed there seem to be a higher percentage of deflections later in the simulation, when more dorfs are lying on the ground, and there is a higher chance of shots coming from large distance (as shooters far up the row will be shooting at the few remaining targets). I will see if this results is reproduced for iron vs. steel using Zivilin's 1v1 cell arrangement, to rule out the distance factor. If this doesn't work, I will try to map out the results for iron vs. steel carefully over the range between Force 25 and 40, to see if that gives any insights.
I'd guess that the lower of the weapon's contact area and the body part being hit's contact area is used in the combat calcs.
It's also possible that for this or some other reason deflection depends on body part. Given that "inelastic" deflection was found to be all-or-nothing, it is possible that "elastic" deflection against each body part is also binary. This would cause deflection% to change in discrete steps as projectile momentum increases. I'd also expect that the likelihood of each body part to get hit changes if the dorf is on the ground, so this suggests a way that dorfs falling over could change deflections.
Furthermore, I've noticed that I get a few percent differences in deflections when re-running the same data set. Each set contains over 10,000 hits, so if all hits are equivalent and independent, the error should be less than 1 percent. If instead deflections depend on target stance or distance, then the deflections would be correlated depending on how quickly the dorf fall over etc, and the variance between data sets would be significantly larger.
I just skimmed the entire thread and am quite impressed with this research project.
I was wondering how these would factor into the test?
Bone armor
Wooden armor
Candy clothing - by itself, and in conjunction with metal armor.
I'm glad you like our project! There are two things which prevent me from immediately adding these armors:
1) They are not available in the arena without modding. I'm not sure I know the proper way to add them, and I don't want to mess it up.
2) It already takes me all night to run the set I use currently.
I would like to try such things eventually though. If you know the proper way to add them, I'd be very interested.