...
Here's some more numbers for force dependence after multiplying IMPACT_YIELD, IMPACT_FRACTURE and IMPACT_STRAIN_AT_YIELD by 10:
...
I examined these numbers and it appears that, for iron bolts and steel armor, the deflection threshold kinetic energy is linearly related to IMPACT_YIELD and IMPACT_STRAIN_AT_YIELD.
Unfortunately, I don't think the relationship is this simple. It appears to be true that, for IMPACT_YIELD>IMPACT_FRACTURE, deflection threshold kinetic energy is linearly proportional to IMPACT_YIELD. Here are some results for the force where deflection equals approximately 60% (the middle of the transition between 1.0 and 0.2) as a function of IMPACT_YIELD:
I have also plotted the square of the force (proportional to the kinetic energy) as a function of IMPACT_YIELD-IMPACT_FRACTURE:
As you can see, it is linear for IMPACT_YIELD>IMPACT_FRACTURE, but not for smaller IMPACT_YIELD.
update: I added more points to the above curves. Note the discontinuity at IMPACT_YIELD=IMPACT_FRACTURE=2520000 - I believe this is real. Here is also a zoom-in of the kinetic energy plot above near the transition:
Here are some of the raw deflection vs. force curves that I used to determine the transition.
The number next to the curve in the legend is IMPACT_YIELD. The data for low IMPACT_YIELD is not in here - I only copied down the force for the transition from 1.0 to 0.2 and not the force/deflection curve. I have all the raw gamelogs, so I will try to add in this data later.
Edit - here is another set with IMPACT_YIELD <= IMPACT_FRACTURE. Note that the curve for IMPACT_YIELD=IMPACT_FRACTURE=2520000 is quite different from the others.
I have also posted most of my data on
DFFD (I updated this more data). I created this using Gnumeric (linux spreadsheet editor) and converted to excel, so the graphs will probably be all messed up, but the data should be fine.
One other comment about the data - as |IMPACT_YIELD-IMPACT_FRACTURE| gets larger, the size of the plateau at 0.2 also gets larger. This is also true for at least some values where IMPACT_YIELD<IMPACT_FRACTURE. Notice that IMPACT_YIELD:3010000 (just above the IMPACT_FRACTURE:2520000) the plateau seems to have almost disappeared, but it is quite prevalent for vanilla IMPACT params (see earlier posts), which have IMPACT_YIELD:1505000.
Looking at those bronze results, it looks like you increased each parameter x10.
I actually only multiplied by 2 each time. Very sorry I forgot to mention that. It took me so many tries to get the run to work I forgot that I had made that change by the time I posted the data.
Today I am going to do some detailed runs for IMPACT_YIELD<IMPACT_FRACTURE.
Edit:
I looked at Urist's results more carefully, and it appears he only considered IMPACT_YIELD>IMPACT_FRACTURE, so his results are consistent with my finding that in this range the kinetic energy required to penetrate armor scales linearly with IMPACT_YIELD.
In addition to running IMPACT_YIELD<IMPACT_FRACTURE, I also am running IMPACT_YIELD=IMPACT_FRACTURE today, and before I left I peeked at the first few results and I can say that it is weird. At Force=45, there are ~90% deflections, which is very strange given that at very small impact yield there are 100% deflections at Force=45. Candy has IMPACT_YIELD=IMPACT_FRACTURE=5000000, so we should expect the behavior of candy to be weird as well. I definitely plan to explore force/deflection curves at different values of IMPACT_YIELD=IMPACT_FRACTURE.
I am hoping that in the next few days (or maybe this weekend) I can write code to do a simplex search to automatically map out force/deflection curves. Right now I just tell the computer to evaluate deflection at a set of force values, but frequently the result is not at all what I expected, and therefore the forces I evaluate at are not ideal for mapping a good curve. I need the computer to instead search for the forces which give certain values of deflection (
x=1.0, 0.8, 0.6, 0.4, 0.2, 0.1 and 0.0), and then search until it finds a pair of adjacent forces such that the higher force has deflection less than or equal to
x, and the lower force has deflection greater than or equal to
x (for example, for iron vs. vanilla steel, the pair of forces (47,48) satisfy this for x between 1.0 and 0.2). Since this is a one dimensional search, the
simplex method should do a good job. Given how complicated the dependence on impact parameters appears to be, I think it would be most efficient for me to focus my efforts on writing this search code over the next few days, and not worry about running more data sets until I have it finished.
Urist - do you (or anyone else who's motivated) have any interest in my collection of perl scripts? They are written to work under linux, but I think the only change needed to make them work under windoze would be to call a different program to send keystrokes to DF. For example, I think
this might work, but I'm not sure if it's compatible with perl. I definitely plan to post my scripts to DFFD eventually (and I did post
some a while back), but I end up changing them pretty much daily as I find that I need to do a more and more complex search to map out the parameter space. So unless someone is really interested and into computer programming, I will wait until I have something that is more stable and also hopefully commented at least decently well before putting it up there.