by hiker » 30 Jun 2016, 05:27
Hi,
the new system is based on the data/kart_characteristic.xml file. It contains documentation at the top of the file (though we should take the time to properly document it on our web page).
The basic idea is that a set of base values is taken, which are then modified in a fixed order: first you take the base, then apply difficulty modifier, then kart characteristics (light, medium, heavy). Each characteristic can either overwrite of modify the previous value. E.g. if the base value of an attribute is (say) 2.0, then e.g. difficulty can say "*1.5+1", kart characteristic could then be "/1.1". No operator precedence is implemented, so it's strictly left to right evaluation.
Hopefully this should make it easier to implement new kart types.
Having said all of this, when I just tried to use some of the values, I noticed a few bugs in our current version (which will also affect the upcoming 0.9.2 release). Negative characteristics don't work (e.g. value="-0.6"), and more than one operator (*1.5+2 as mentioned above) actually does not work either, but that's already fixed in git (and more unit tests will hopefully be added).
Cheers,
Joerg