First off, I added a link to the spreadsheet with my scan over all materials to my previous post.
I finished most of my scan of IMPACT_YIELD last night. Here are the results for Iron, Steel, and Adamantine
I also plotted a zoom in of Iron by itself. A spreadsheet of results is also posted on
DFFD. I have results for bronze which I will add later, but I doubt they will be very interesting. In all cases, the lines represent momentum=(IMPACT_FRACTURE-IMPACT_YIELD/2)/22500. This gives an excellent fit to the data everywhere. Once again, Urist has proven to be correct, as he proposed this equation several days ago based on very sparse data...
If we zoom in on iron, there are in fact systematic differences from this equation. I think that these result from the steps that Urist sees when looking at strain or %fracture, and agree that they likely have some dependence on IMPACT_STRAIN_AT_YIELD. If you look closely at mine and Urist's previous data from varying IMPACT_STRAIN_AT_YIELD, you will see that it does seem to cause some slight changes in the results, but no clear systematic change. We therefore both concluded that it doesn't do anything. I now suspect that it may influence the exact location of the steps, without changing the average shape of the overall curve. Probably the steps are another weird rounding thing. For example, the code might multiply a quantity by IMPACT_STRAIN_AT_YIELD, round the result, and then divide it by IMPACT_STRAIN_AT_YIELD, which would result in steps that move around as you change IMPACT_STRAIN_AT_YIELD, but no clear dependence on IMPACT_STRAIN_AT_YIELD.
In any case, I have convinced myself that momentum=(IMPACT_FRACTURE-IMPACT_YIELD/2)*(CONTACT_AREA*LAYER_SIZE)/2250000 captures the behavior sufficiently well. I need to verify that (CONTACT_AREA*LAYER_SIZE) multiplies both the YIELD and FRACTURE terms equally, and that this formula continues to hold for larger CONTACT_AREA. If someone else finds evidence that IMPACT_STRAIN_AT_YIELD is important, I am certainly open to further investigation, but my results so far indicate that it mainly determines the shift from deflection by armor to harmless bruising through armor, which is of minimal importance for determining armor effectiveness.
I am planning to move on to using our results to attempt to balance projectile performance against armor. In particular, I noticed that steel with CONTACT_AREA=2 and iron with CONTACT_AREA=10 are both penetrated at about momentum=75. To me that suggests an attractive set of parameters: Increase contact area to 10, and then set velocity so that bolt momentum~75. Then iron helms and breastplates (thickness=20), as well as overlaps, will deflect bolts sometimes, and other areas of iron armor will not deflect at all. Steel helms, breastplates, and overlaps will deflect 100% of the time, while other areas will deflect only part of the time. Adamantine will always deflect 100% of the time, and other armors will do nothing. I personally would prefer a system where all armors could have some finite chance of deflecting (think a hit at a grazing angle - you can skip a rock off water if the angle is low enough), this is not possible with the current mechanics. I suppose gameplay wise there is not a significant difference between zero deflections and 1% deflections anyway.
Regardless, my goal is not to figure out the "best" set projectile parameters to give "proper" performance. I plan to explore a variety of conditions and report the results, so that modders (and perhaps even developers) can make their own decisions about what parameters to use.
Edit - I realized I may be getting a little bit ahead of myself, as we still have to see how chainmail works. I strongly suspect that it just converts edged damage to blunt damage regardless of momentum so long as SHEAR_YIELD/FRACTURE is equal to or greater than the projectile's, but I need to verify this. This is definitely what happens at vanilla values. It is possible that chainmail may also deflect projectiles at lower momenta.
Edit #2- I updated my
Summary to reflect our latest results.